Jmeter搭建与练习
Java环境搭建
1、接口测试技术栈:
HTTP的协议
执行:
工具:PostMan,JMeter
代码:框架
思想:MockServer
2、nginx、jmeter、maven、kafka
3、Jmeter
4、Apache JMeter features include:
5、浏览器中输入网址:
https://jmeter.apache.org/download_jmeter.cgi,选择apache-jmeter-5.4.3.zip下载在C盘,可以解压在当前文件夹中(bin为可执行的目录)
Jmeter最新版本:5.4.3,一般使用的版本是:5.4.1
一、搭建环境
1、点击启动
2、运行完成后显示
二、Apache Jmeter使用
1、切换语言
2、在选项中放大或缩小字体
测试计划可以理解为一个项目的顶级目录,可以为根目录,那么在一个测试计划的里面可以有很多的线程组
线程组可以理解为postman测试工具中的collection,那么在一个线程组里面可以存放很多的测试用例(test case)
三、新建TestDev
1、右键选择线程组
2、设置三个线程组
1)查看手机号码归属地、书籍服务、风暴平台
2)在手机号码归属地中选择添加HTTP请求
3)post请求方法:(消息体数据:xml 参数(表单)
完整的请求地址就是域名+路径
当之前设置的测试计划被删除后,重新查看可以选择“最近打开”
3、xml数据格式
1.1 填写请求地址与请求数据
1.2 请求头(HTTP信息头管理器是填写请求头的位置)
右击线程组,添加请求头
1.3 点击添加,输入Content-Type信息
1.4 断言请求信息
可以在设置的测试计划右击“查看结果树”
1.5 首先“清除全部”,点击启动,可以查看添加的测试计划断言信息
1.6 查看响应正文和响应头
4、GET请求
输入服务器名称与路径,以及验证的数据信息,之后操作查看结果树
5、POST请求(表单数据格式)
1.1 选择请求方式为POST,输入信息
1.2 新建信息头管理器,输入表单信息
1.3 运行POST结果树
因表单与xml冲突,故将两个数据区分输入
表单为application/x-www-form-urlencoded,xml为text/xml; charset=utf-8
4.1 点击“查看手机号码归属地”
右击“简单控制器”,输入两个数据格式,移入相关的HTTP请求,即可成功运行
1.5 当输入的请求或断言信息出现异常时,会有红色标识提示,点击可查看异常的具体问题
二、点击书籍服务
1、查看所有的书籍信息
输入网址信息:http://101.43.158.84:5000/v1/api/books
2、plugins是插件的意思,那么jmeter-plugins-manager-1.6.jar是jmeter的插件管理,把该文件放在JMeter安装目录下的lib下的ext的目录下
***安装插件的步骤:
(1) 在选项中点击插件管理
(2) 在available plugins中,搜索需要安装的插件,然后勾选
(3) 点击Apply Changes and Restart JMeter
(4)安装成功后,JMeter就会重新启动,那么安装成功的插件就会显示在installed plugins
***验证一个接口测试的结果信息:
(1) 协议状态码
(2) 业务状态码
(3) 响应数据
3、断言
(点击“查看所有的书籍信息”,选择添加三个断言)
JSON在线查看:https://www.bejson.com/jsonviewernew/
4、选择验证的信息
填写的断言:
***postman与jmeter的区别是什么?
1. 使用方面:
(1) 公司不管是开发,测试,架构师,大家调试以及验证接口,都是使用的是postman
2. 结果:
(1) postman统计结果是按添加的断言个数为统计结果的,如一个case,10个断言,那么执行统计是10
(2) jmeter是按测试用例的个数来统计结果的,如一个case,10个断言,那么执行统计是1
3. 插件方面:
(1) jmeter有很丰富的插件,可以对很多的协议进行测试,也可以和很多的主流监控软件进行合并
(2) jmeter可以组织以及管理上千的测试用例
***HTTP请求默认值:
添加方式:它是在配置元件里面,它的主要价值是,我们可以把请求地址填写在HTTP请求默认值里面,那么后面的接口就不需要填写请求地址了,它是全局的
***编码:请求参数里面如果有中文,那么在“内容编码”里面填写:utf-8 ,具体如下:
书籍中HTTP信息头管理器
动态参数:常用为JSON提取器
1、使用后置处理器中的正则表达式提取器
2、使用后置处理器中的JSON提取器
什么是后置处理器?
后置处理器值的是测试用例执行结束后,专门来处理执行后的事情
5、 断言:
1) 书籍名称
2) 业务状态码
3) 定义变量ID
bookID是变量,变量的值datas.id,在postman中,调用变量是:{{变量}},那么在JMeter中,调用变量为:${变量}