在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

image

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具

Apache JMeter - Apache JMeter™

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面就以上图的Restful类型的接口为例简单介绍使用Jmeter进行接口测试的方法。

获取某个具体网关设备的基本信息。

请求

方法:GET

URI:/api/gateway/<gateway_id>

参数:

在HTTP请求(http request)的头部(header)添加Userid和Token字段作为用户验证字段

参数名 必需 类型 说明
gateway_id true int 网关ID,置于URL内

响应

返回值:JSON格式的网关信息

参数:

参数名 类型 说明
id int 网关id
name string 网关的名称
mac string 网关的mac地址
fw_ver string 网关的固件版本号
sub_dev unsigned int 子设备数
did string 网关的did
pscode string 网关pscode

1.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

image

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

image

3. 添加线程组

右键左边树中的测试计划“Apitest”节点,“添 加”→”Threads”→”线程组”

image

添加成功后,“Apitest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

image

4. 添加http默认请求:(用来配置公共参数,不是http请求)

右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后

添加成功后,线程组”节点下多了“HTTP请求默认值”节点

image

这里可以设置主机地址等一下公共参数,比如我们的例子中请求路径前面都是主机地址+index.php,就可以统一在"http请求默认值"里设置

填写默认请求名、服务器、默认请求路径,保存测试计划。

5.添加http请求信息头

这一项并不是必须的,只不过我们的例子中使用了Userid和Token放在HTTP请求头中用作用户验证

右键“Apitest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

image

6. 添加http请求

右键“Apitest”,选择“添加”→ “Sampler”→“HTTP请求”

image

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

image

填写完成,保存测试计划

7. 添加监听器

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX”

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

image

添加成功后,“线程组”下增加了几个节点

image

8. 试运行

点击执行

image

可以查看各个“监听器”的结果

image

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

image

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

image

样本数目:总共发送到服务器的请求数. 最新样本:代表时间的数字,是服务器响应最后一个请求的时间. 吞吐量:服务器每分钟处理的请求数. 平均值:总运行时间除以发送到服务器的请求数. 中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值. 偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.
http://blog.csdn.net/tanghongchang123/article/details/51966341

JMeter自动化测试工具相关推荐

  1. 自动化测试工具的选择

    随着自动化测试的发展,市场上涌现了多款自动化测试工具.其中,绝大部分是商业收费的工具,也有部分是开源工具.但是相对于收费的自动化测试工具,开源工具的功能与使用领域都要逊色很多.好多公司由于本身测试工作 ...

  2. 华为云龙api自动化工具_2020年十大最佳自动化测试工具

    Best Automation Testing Tools for 2020 对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找 ...

  3. http 测试工具_20+最好的开源自动化测试工具

    本文开始逐步的降低公众号更文频率,提升文章质量,帮忙多点点文章末右下角的"好看"支持下,也可以将本文分享到朋友圈或你身边的朋友,谢谢 最佳开源自动化工具有哪些呢? 在本文中,整理了 ...

  4. python自动化工具哪个好用_10款好用的自动化测试工具推荐

    当我们功能测试干的时间比较久了,或者想要学习更多的技术,提升自己的时候,基本上第一时间就会想到的是自动化测试.而在自动化测试领域,自动化工具的核心地位毋庸置疑,下面为大家推荐10款常见常用的自动化测试 ...

  5. uft自动化测试工具安装步骤_自动化功能测试和接口测试工具整理

    对于自动化测试,原来谈这方面的内容比较少,但是现在我们做DevOps支撑平台的时候,在整个持续集成和交付的过程中,有一个重要的内容就是自动化测试.自动化测试的覆盖面相当大,其中既包括了CS,BS和移动 ...

  6. postman在线测试_如何选择适合自己的自动化测试工具?

    对于没有代码功底的测试人员来说,Postman和Jmeter以及RobotFramework算是"半"自动化测试工具.所谓的半就是介于功能测试和测试开发中间的阶段. 作为一个经验较 ...

  7. 十大“史上最佳”自动化测试工具

    一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高. Selenium Selenium是测试自动化的家喻户晓的名字.它被认为是Web应用程序用户界面自动化测试的行业标准.根据 ...

  8. 自动化测试工具 Java等

    Bug 跟踪工具 在项目管理工具那一篇文章中,我已经给你介绍了一些任务跟踪系统,比如说Jira.禅道.TAPD.云效等,都可以用来跟踪 Bug. Bugzilla Bugzilla 是由 Mazill ...

  9. 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins

    目录 [本文简介看之前请详细的看完介绍] 本文是全网首发的[全栈接口测试进阶系列教程]jmeter接口测试工具从入门到入职, 接口系列包含 接口测试系列包含所有的接口测试工具入门到入职,如果你喜欢的话 ...

最新文章

  1. 物联网帝国——孙正义职业生涯最大的豪赌
  2. linux 命令last -x,Linux常用命令last的使用方法详解
  3. python输出杨辉三角啊二维数组_Java输出杨辉三角形(使用二维数组)
  4. ADSL断流问题分析
  5. Linux 环境变量启动过程/配置文件的读取过程
  6. 开源日志库log4cplus+VS2008使用整理
  7. 一款基于Netty开发的WebSocket服务器
  8. 简单叙述tcp/ip的工作原理和主要的协议_802.11协议精读3:CSMA/CD与CSMA/CA
  9. python编写函数模拟猜数游戏、系统随机产生一个数_C语言编程:编写一个猜数的游戏,系统自动产生一个随机数,你来猜,程序给出提示,直到猜对为止。...
  10. html中使用js实现体彩大乐透随机选号
  11. 小刘的每日知识点——10.22
  12. Linux 错误E45,readonly optionisset(add ...)
  13. Should be compatible with WP_Widget::widget($args, $instance)
  14. Unity 版本更新
  15. 大学计算机网课怎么上,大学计算机课程学习路线应该是怎么样的呢?
  16. WinRAR实用技巧:一个设置,可能让多文件压缩变得更小!
  17. STM32F03寄存器方式点亮LED流水灯
  18. python集合优化实践
  19. vue 更改 element-ui 中 el-table 默认的暂无数据样式
  20. 《CMake 进阶之路》第四章 安装Installing 及 测试Testing

热门文章

  1. IE不兼容event.currentTarget
  2. 简单的本地图片服务器的搭建
  3. python elif报错_python循环的elif报错是什么原因
  4. BUUCTF Web [MRCTF2020]Ez_bypass1 [GXYCTF2019]BabySQli1 [GXYCTF2019]BabyUpload1
  5. 如何DOS命令进入D盘文件夹
  6. java中父类强制转换成子类的原则
  7. Temporal Shift Module for Efficient Video Understanding
  8. zabbix编译解决ldap问题
  9. 你家宽带达标了吗? #可能是全宇宙最容易懂的家庭网络课程#
  10. js 组合键 按键操作