当前位置:网站首页>收下这份实操案例,还怕不会用Jmeter接口测试工具
收下这份实操案例,还怕不会用Jmeter接口测试工具
2022-07-27 16:23:00 【测试小鬼】
一、简介
JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是接口功能、自动化、性 能测试的工具。具有高可扩展性、支持HTTP、HTTPS、TCP、等多种协议,还可以自己编写Java脚本对 协议进行扩展。
官方网站:https://jmeter.apache.org
二、安装和配置
1、本机安装好jdk环境
2、官网下载压缩包,在任意目录下解压
3、修改配置文件,打开Jmeter的bin目录下jmeter.properties,修改:
language=zh_CN
sampleresult.default.encoding=utf-84、进入到Jmeter的bin目录下,双击jmeter.bat启动

三、Jmeter常用组件
在Jmeter中,可以通过添加不同的组件,来实现不同的功能,常用的组件有:
测试计划
一个最基本的组件,所有的其他组件都要在它的内部运行。
线程组
线程组代表了一组用户,它可以模拟1个或多个用户,可以发起1次或多次请求,也可以连续发送n秒的 请求。
取样器
取样器代表了一个请求,比如HTTP请求,TCP请求等,通过配置服务端接口的ip、端口号和参数等信 息,就可以向服务端发送数据,并拿到响应。
断言
断言就是一个预期结果,断言通常是针对某个HTTP请求的,判断HTTP的返回值是否符合断言的规则, 比如是否包含“success”,状态码是否是200等。如果断言通过,Jmeter就认为HTTP请求成功,否则就标 记为失败。
监听器
监听器就是在Jmeter测试过程中,获取一些运行数据,比如发送了多少次请求、成功了多少次,失败了 多少次。每次请求和响应的具体内容等。
四、编写一个HTTP接口脚本
打开码同学商城卖家管理后台登录页面,输入用户名密码进行登录,通过fiddler,可以抓包登录接口的信息:
url:/seller/login请求方式:GET
参数:username=mtx-001&password=e10adc3949ba59abbe56e057f20f883e&captcha=1512&uuid=c9835a40-047b- 11ec-ae8f-41d7ee6b2a89
第一步:创建线程组
在测试计划上右键,添加线程组,保持默认

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

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

第四、断言
默认情况下,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请求上右键,添加响应断言

解释:
测试字段:对哪部分数据进行判断,默认是响应内容
模式匹配规则:判断规则,默认是包含字符串
测试模式:具体判断的内容
最后我也整理了一些软件测试学习资料,对于学软件测试的小伙伴来说应该会很有帮助,为了更好地整理每个模块
需要的私信我关键字【555】免费获取哦 注意关键字是:555
全套软件测试自动化测试教学视频

300G教程资料下载【视频教程+PPT+项目源码】

全套软件测试自动化测试大厂面经

边栏推荐
- Aircraft collision detection
- Full automatic breast pump chip dltap703sd
- Redis注解
- 订单超时取消 及 按类别查询商品
- 连续时间系统的性能分析(2)-二阶系统性能改善方式PID,PR
- Typeerror: conv2d(): argument 'padding' (position 5) must be multiple of ints, not STR [error]
- Multifunctional wireless remote control moxibustion instrument chip dltap703sd
- The hero of the aircraft war comes out with bullets
- 兆骑科创海内外引进高层次人才,创新创业项目对接
- ES6-新增方法
猜你喜欢
随机推荐
TypeScript安装
npm、cnpm 淘宝镜像
MySQL 03 高级查询(一)
JS to realize simple form verification and select all functions
idea 2020.1社区版下载体验
Kinect2 for Unity3D——AvatarDemo学习
商品推荐和分类商品推荐
Order timeout cancellation and commodity query by category
Product recommendation and classified product recommendation
WPS turns off annoying advertisements
MicaZ+Tinyos学习笔记(1)
JDBC MySQL 02 data access and Dao mode
Latex使用--subfigure竖排图形
【npm】 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
MySQL 04 advanced query (II)
Collection of software design suggestions of "high cohesion and low coupling"
The hero of the aircraft war comes out with bullets
LeetCode 刷题 第三天
我人都傻了,CompletableFuture和OpenFegin一起使用竟然报错
Some advice for NS2 beginner.









