接口测试相关知识(八)JMeter的安装以及使用
1、JMeter的安装和相关知识
1.1什么是JMeter?
JMeter是Apache组织开发的基于java的压力测试工具,用于对软件做压力测试的工具,它最初被设计用于web应用测试,但后来扩展到其他测试领域,它可以用户测试静态和动态的资源
JMeter能够对对应用程序做功能/回归测试 ---------对于测试人员来说最重要的是来做性能测试和接口测试
1.2JMeter有什么作用?
1、web自动化测试
2、接口测试
3、性能 压力测试
4、数据库测试
5、java程序测试
1.3JMeter的优点有哪些?
第一个优点开源:JMeter是一款免费的开源软件,使用它你不需要支付任何费用,因为它的开源性,你也可以根据自己的需求,扩展他的功能
第二个优点小巧:占用的资源非常非常少
第三个优点:功能强化,JMeter设计之初就是做一个简单的web性能测试工具,经过不断的更新拓展,现在可以完成数据库等方面的测试
1.4JMeter的下载和安装
1.4.1JMeter的下载
JMeter网址:https://jmeter.apache.org/download_jmeter.cgi
在打开网址后点开红色箭头所指 进行下载
在图中的信息我们可以看到 JMeter的当前版本(5.4.3)--需要java8的环境
这里本人用的版本为JMeter5.4.1来进行演示
解压的路径可以自定义 如下图所示
1.4.2关于JMeter的环境搭建
因为JMeter基于java搭建的 所以我们需要配置jdk和jre的环境变量
关于环境的搭建这部分可以参考 本人之前的博客随笔
环境搭建网址:
https://www.cnblogs.com/jiachao/p/15696144.html
1.4.2环境搭建好后开启JMeter
我们找到JMeter的bin目录下的jmeter.bat 右键 以管理员方式运行
如果不以管理员方式运行 会出现保存错误 无法继续接下来的测试
控制台中出现如图所示的提示信息 即为成功 如果出现其他信息 需检查java环境变量
1.4.3JMeter设置语言(中文)
1.5JMeter的各种交互
如图所示 按钮交互依次为
1、打开文件
2、保存文件
3、剪切
4、启动
5、不间断启动
6、清空
7、清空全部
8、查找
1.6关于JMeter的保存
1、在测试计划名称 写入你要测试的用例名称
2、点击保存按钮
3、选择要保存的路径,点击save 进行保存
JMeter保存的文件类型默认为(.jmx)
1.7JMeter创建线程组
我们在测试计划选择右键 然后在添加的线程里面添加线程组
每一个新创建的线程组可以理解成一个项目(或者工程)
1.8添加测试用例(http)
我们对创建好的线程组右键 在添加、取样器里面 选择HTTP请求 点击
相关代码如下
服务器地址:ws.webxml.com.cn 路径:/WebServices/MobileCodeWS.asmx HTTP请求:POST 请求数据 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getMobileCodeInfo xmlns="http://WebXml.com.cn/"> <mobileCode>在此处添加手机号</mobileCode> <userID></userID> </getMobileCodeInfo> </soap:Body> </soap:Envelope>
在上图中我们可以看到 在处理post请求的时候
消息体数据:里面写的是xml和json的数据类型
参数:里面写的是表单的数据格式
1.9添加HTTP的请求头
在我们执行测试的时候 因为我们写入的数据类型为xml 所以我们需要创建请求头管理器来进行定义写入的格式
在线程组处右键,选择添加里面的配置原件,选择HTTP信息头管理器 点击。
在请求头管理器输入
Content-Type:text/xml; charset=utf-
这里要注意排列顺序 因为新创建的会默认在最下 所以我们需要将请求头手动调整在测试用例前 才能生效(请求头,请求头,肯定要在最上面才能用)
HTTP信息头管理器是填写请求头的地方,它在配置件的组件里面无涯
1.10在JMeter中查看测试结果 使用的是:监听器中“查看结果树”
点击运行后 在查看结果树当中就可以看到响应数据
途中马赛克为本人手机号,正常展示的结果为手机号+归属地
1.11用JMeter处理HTTP GET请求
GET /WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=string&userID=string HTTP/1.1 Host: ws.webxml.com.cn HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <string xmlns="http://WebXml.com.cn/">string</string>
根据上一个请求应用同样的方法
在结果树查看响应数据
1.12JMeter简单控制器
简单控制器的作用就是将请求头,测试用例等 放在控制器里,统一管理 ,可以防止请求头之间的冲突
需要注意的是 我们创建请求头和请求数据需要放在简单控制器下 才可以生效
1.13利用JMeter工具来做断言
将该工具下载好后,那么jmeter-plugins-manager-1.6.jar是jmeter的插件管理,把该文件放在JMeter安装目录下的lib下的ext的目录下
1.13.1 验证断言插件是否安装
在jmeter选项栏里面 选择plugins Manager 点击
在Available Plugins 里面 输入JSON 点击勾选 在点击右下方按钮 进行安装
安装成功后 在Installed Plugins 里面输入json 如果出现了 则证明已安装好
1.14用JMeter工具进行断言实战
在我们要断言的请求 进行右键 选择添加 选择断言 选择json/yaml 断言
并且测试结构如图所示排列 点击运行
1.15在JMeter工具 处理动态参数的方法
1、使用后置处理器中的正则表达式提取器
2、使用后置处理器中的JSON提取器
什么是后置处理器? 后置处理器值的是测试用例执行结束后,专门来处理执行后的事情
如上所示,bookID是变量,变量的值datas.id,在postman中,调用变量是:{{变量}},那么在JMeter中,调用变量为:${变量}
1.16 JMeter工具 处理HTTP请求默认值
添加方式:它是在配置元件里面,它的主要价值是,我们可以把请求地址填写在HTTP请求默认值里面,那么后面的接口就不需要填写请求地址了,它是全局的
在线程组右键 选择添加 选择配置原件 选择 HTTP默认请求值
我们这里利用到了数据驱动的思想 将重复的参数 分离出来 使其在每个测试用例中都能运行 在JMeter里面 我们输入服务器的IP即可
1.17在JMeter工具中 处理编码的方法
因为我们在做测试的时候 产品大多数为中文,如果在测试时候断言错误 则我们需要在测试用例的内容编码中填写 UTF-8(不区分大小写),如下图所示
2、关于个人在JMeter的总结
在一个线程组里 需要如下几个步骤
需有 简单控制器来进行数据类型的分类 ,简单控制器里需要有 HTTP的信息头管理器和请求信息,而在请求信息里 需要有JSON/YAML断言
在线程组下面 需添加一个HTTP请求默认值 整合重复IP(或代码)
具体关系如下图所示
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战