Jmeter自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

1、Jmeter的安装与部署

1.1 环境要求

jdk1.8、配置jdk环境变量(JAVA_HOME:C:\Program Files\Java\jdk1.8.0_101 Path:;%JAVA_HOME%\bin; CLASSPATH:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar)

1.2 安装Jmeter

参考Jmeter的下载及安装

1.3 配置Jmeter环境变量

参考配置Jmeter环境变量

1.4 Jmeter的使用

找到jmeter安装路径的bin文件夹(我的电脑是D:\server\apache-jmeter-5.3),如下图

双击jmeter.bat后若显示如下界面即运行成功

手写自动化测试脚本(不建议用)

通过录制系统生成自动化测试脚本(推荐用)

2.1 设置代理服务器

进入浏览器设置,找到如下目录(图片不清则双击查看)

Google浏览器参考如下界面

Edge浏览器参考如下界面

如下图进入计算机代理设置,打开使用代理服务器,地址写http://localhost,端口写8888(尽量不使用8080)。若下方有保存按钮,则需要点击按钮保存,然后浏览器代理服务器设置完毕

2.2 浏览器证书设置

浏览器证书设置:打开浏览器设置中的高级设置

Google浏览器参考如下界面

Edge浏览器参考如下界面

2.2.1 添加证书

打开管理证书后选择受信任的根证书颁发机构点击导入,进入jmeter安装目录Bin文件夹

2.3 创建线程组及Http代理服务器

2.3.1 创建线程组

选中测试计划,右键,选择添加->线程->线程组,即可新建线程组

将线程组命名为绩效考核系统自动化测试

2.3.2 在线程组中添加一个录制控制
2.3.3创建Http代理服务器

选中测试计划(若界面中含有工作台,换成选中工作台,执行新建Http代理服务器的操作),右键,选择添加->非测试元件->Http代理服务器,即可新建Http代理服务器

端口设为8888,与3.1中设置的代理服务器的端口相同;目标控制器选择 测试计划>绩效考核系统自动化测试

2.4 录制系统测试脚本(以绩效考核系统为例)

2.4.1 录制脚本

点击代理服务器右侧里面的启动录制按钮,弹出一个根证书的弹窗,点击确定。

进入系统登录界面,如图所示,jmeter已经开始录制

进入系统后,选择几个打分项,点击停止录制

如下图我们可以看到,我们与系统进行的交互行为,已经被录制成了脚本

这时,我们可以关闭代理了,否则会影响上网

2.4.2 创建HTTP请求默认值

选中测试计划,右键,添加->配置元件->HTTP请求默认值,新建完成后,将HTTP请求默认值放在目录最上方(只要是配置类文件,最好都放在目录最上方)

在HTTP请求默认值设置默认协议为http,默认ip或者服务器为10.17.18.24,其他内容视情况而定

在请求默认值设置好默认参数后,可以将线程组的每个请求的参数删除,这样http请求参数就会默认HTTP请求默认值里的参数值。

重点!!!

可以在录制测试脚本之前就创建好HTTP请求默认值,这样录制出来的脚本也会默认为HTTP请求默认值里的参数值

3、修改自动生成的测试脚本

3.1 获取登录token

选中登录,右键,添加->后置处理器->JSON提取器,获取用户登录token

3.2 配置token参数

如下图所示,进入getinfo请求的http信息头管理器,将参数Authorization对应的值修改成Bearer ${token}(JSON提取器获取的登录令牌)

后面的每个请求,都要修改上述参数。

3.3 添加监听器

选中测试计划,右键,添加->监听器,可以添加如下图所示的监听器(如察看结果树、汇总报告、聚合报告、汇总图)

添加完成之后如下图所示

3.4 后置处理器

添加BeanShell后置处理器,设置接收的响应消息的编码格式(UTF-8)

3.5 定时器

后续待完善

4、遇到的问题

org.apache.http.NoHttpResponseException: failed to respond 问题解决

证书问题

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
前端精髓4 小时前
结构化输出with_structured_output(抽卡)
python·langchain
尹人入圣4 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
Nuanyt5 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌5 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_967987376 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
专注仿真8 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放8 小时前
Python基础语法练习题(75)
开发语言·python·学习
黑十9 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
threelab10 小时前
开源图片去水印代码
python
螺丝钉tina10 小时前
[Playwright] [02]常用命令与调试:Debug UI、Mode和 Trace Viewer
开发语言·javascript·测试工具·ui·自动化