首页 > 其他分享 >收下这份实操案例,还怕不会用Jmeter接口测试工具?!

收下这份实操案例,还怕不会用Jmeter接口测试工具?!

时间:2022-11-02 09:25:41浏览次数:58  
标签:HTTP 请求 接口 json 实操 测试工具 Jmeter 断言


01简介

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

码同学公众号:自动化软件测试,领取资料可加:magetest

码同学抖音号:小码哥聊软件测试


JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、支持HTTP、HTTPS、TCP、等多种协议,还可以自己编写Java脚本对 协议进行扩展。

官方网站:https://jmeter.apache.org



02安装和配置

1、本机安装好jdk环境

2、官网下载压缩包,在任意目录下解压

3、修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改:

language=zh_CN

sampleresult.default.encoding=utf-8

⚠️注意:要把配置前面的注释#去掉才能生效

 

4、进入到Jmeter的bin目录下,双击jmeter.bat启动

 

 



03Jmeter常用组件

在Jmeter中,可以通过添加不同的组件,来实现不同的功能,常用的组件有:

测试计划

一个最基本的组件,所有的其他组件都要在它的内部运行。

线程组

线程组代表了一组用户,它可以模拟1个或多个用户,可以发起1次或多次请求,也可以连续发送n秒的 请求。

取样器

取样器代表了一个请求,比如HTTP请求,TCP请求等,通过配置服务端接口的ip、端口号和参数等信 息,就可以向服务端发送数据,并拿到响应。

断言

断言就是一个预期结果,断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则, 比如是否包含“success”,状态码是否是200等。如果断言通过,Jmeter就认为HTTP请求成功,否则就标 记为失败。

监听器

监听器就是在Jmeter测试过程中,获取一些运行数据,比如发送了多少次请求、成功了多少次,失败了 多少次。每次请求和响应的具体内容等。



04编写一个HTTP接口脚本

打开码同学商城卖家管理后台登录页面,输入用户名密码进行登录,通过fiddler,可以抓包登录接口的信息:

 

url:/seller/login

 

请求方式:GET

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest

参数:username=mtx-001&password=e10adc3949ba59abbe56e057f20f883e&captcha=1512&uuid=c9835a40-047b- 11ec-ae8f-41d7ee6b2a89

 

第一步:创建线程组

在测试计划上右键,添加线程组,保持默认

 

 

第二步:创建HTTP请求

在线程组上右键,添加取样器-HTTP取样器,并根据接口的信息,填写协议类型、服务器ip、端口号、 请求方式、路径、请求参数等信息

 

 

第三步:创建监听器

在线程组上右键,添加监听器-查看结果树,,点击菜单栏运行按钮,这样就能看到接口运行后的请求和 返回数据

 

 



05断言

默认情况下,Jmeter会根据接口的响应状态码是否为200来判断接口是否成功,但是很多时候,200只能代表HTTP请求成功了,但是业务上未必成功。因此还需要对接口的返回数据做判断。因此可以使用 Jmeter断言来对返回数据做判断。

 

断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则,比如是否包含“success” 等,如果断言通过,Jmeter就认为HTTP请求成功,否则就标记为失败,在查看结果树中标记为红色。

 

常用的断言有Json断言和响应断言

 

Json断言

针对接口返回是json格式数据的,可以使用json断言,它可以判断json字符串中的某个值是否符合预期。

比如,登录接口成功后,服务器会返回此用户的username和nickname

     "access_token": 

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MDU5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.BEnmRfCU2nfkqMwQVajaxMP5uoUtcyoAsTHMkaK_9RoHwaxS0GNUDY- 9I048wx8LX7pmyMqWl70Q4B31dlVTHw", 

     "uid": 1965, 

     "refresh_token": 

"eyJhbGciOiJIUzUxMiJ9.eyJzZWxmT3BlcmF0ZWQiOjAsInN1YiI6IkNMRVJLIiwicm9sZSI6IlNVUE VSX1NFTExFUiIsImZvdW5kZXIiOm51bGwsInJvbGVzIjpbIkJVWUVSIiwiU0VMTEVSIiwiQ0xFUksiXS wic2VsbGVyTmFtZSI6IjExMSIsImNsZXJrSWQiOjE2LCJ1dWlkIjpudWxsLCJ1aWQiOjE5NjUsInNlbG xlcklkIjo0MSwiY2xlcmtOYW1lIjoibXR4LTAwMSIsImV4cCI6MTYyOTg3MTE5OCwidXNlcm5hbWUiOi JtdHgtMDAxIn0.54MSaFcXIuGexBeXY-79oO5_8tAHvmEvtbJ0qKUE9A5VpqKmbECahX4zcb_2XQEox- H0aIZX49P9ncRrH22Jgg", 

     "face": null, 

     "role_id": 0, 

     "founder": 1, 

     "nickname": "mtx-001", 

     "username": "mtx-001" 

}

添加json断言,判断服务器返回的username是否符合预期。

在HTTP请求上,右键添加json断言

 

 

解释:

Assert JSON Path exists:填写Json路径表达式,其中$代表整个json,$.username就是 username对应的值

Additionally assert value:是否对Json路径表达式对应的值进行判断

Expected Value:期望值的内容,填写你的期望值

Json Path的更多详细用法参见:https://github.com/json-path/JsonPath

 

响应断言

响应断言的应用范围更广一些,只要返回的响应内容是文本内容,无论什么格式,HTML、Json等,响 应断言都可以判断 在HTTP请求上右键,添加响应断言

 

 

解释:

测试字段:对哪部分数据进行判断,默认是响应内容

模式匹配规则:判断规则,默认是包含字符串

测试模式:具体判断的内容

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 ☞ 可加:magetest/关注码同学公众号:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签:HTTP,请求,接口,json,实操,测试工具,Jmeter,断言
From: https://www.cnblogs.com/testfan2019/p/16849891.html

相关文章

  • Kubernetes Deployment 实操整理
    Deployment用于部署无状态的服务。一般不直接管理Pod或者ReplicaSet。创建DeploymentDeployment文件apiVersion:apps/v1kind:Deploymentmetadata:name:nginx......
  • JMETER与BeanShell
    变量Beanshell应用自定义变量有两种方法:#第一种方法,使用${key}格式,但是需要注意这是用应用的变量是没有定义数据类型的#log.info(StringKey)只能打印字符串,所以按下述......
  • 25Jmeter之服务器性能资源监测-Jconsole &Linux命令
    一.通过Jconsole进行监控服务器资源情况Jconsole是一个内置Java性能分析器,可以轻松地使用JConsole来监控Java应用程序性能和跟踪Java中的代码。(1)开始—运行—输......
  • 26Jmeter之60并发时Address alread in use :connect
    发现问题的背景:执行阶梯压力测试,大概60并发报错:JMeter错误:java.net.BindException:Addressalreadyinuse:connect1.分析报错原因:windows默认的TCP/IP端口只有1024-5......
  • 23Jmeter之服务器性能资源监测-Jmeter插件
    如何监控服务器CPU、内存、磁盘、网络等相关资源?需要下载三个文件,其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。前两个的下载地址......
  • 24Jmeter之服务器性能资源监测-nmon
    通过nmon进行监控服务器资源情况1.认识nmon(1)简介nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记......
  • 19Jmeter之取样器 jp@gc - Dummy Sampler
    用于模拟一个接口请求,效果类似于Mock。可以设置响应吗,响应信息,延迟时间(latency),响应时间,模仿响应时间,请求数据,响应数据意义在于:当服务器还没开发完成的时候,帮助调试脚本......
  • 21Jmeter之监听器jp@gc - Response Times Over Time
    RT响应时间,从发起请求到完全接收到应答的时间消耗。在聚合报告中可以查看平均值,详细内容添加-监听器-jp@gc-ResponseTimesOverTime ......
  • 20Jmeter之监听器jp@gc - Active Threads Over Time
    查看不同时间的活动用户数量当前的时间间隔是1毫秒,在setting中可以设置时间间隔以及其他的参数,右击可以导出CSV文档 ......
  • 22Jmeter之监听器jp@gc - Transactions per Second
    jmeter内的聚合报告内可以看到平均吞吐量,通过jp@gc-TransactionsperSecond可以查看某时间点的吞吐量。通过更改并发数去压测,可以找出服务器的最大TPS......