使用Jmeter进行http接口性能测试

转自:https://www.cnblogs.com/star91/p/5059222.html


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

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

Apache JMeterApache组织开发的基于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

 2. 创建测试计划:

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

3. 添加线程组

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

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

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

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

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

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

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

5.添加http请求信息头

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

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

6. 添加http请求

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

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

填写完成,保存测试计划

7. 添加监听器

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

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


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

8. 试运行

点击执行

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

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. 修改线程组的线程数等参数,用于压力测试

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


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


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


Note:如果要进行新的测试,为了清除上次运行的结果,请点击上方的扫把。


OK了,可以再添加一些请求线程组,调整线程数和并发时间来进行压力性能测试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值