一.下载安装步骤
1.安装jdk:判断是否下载成功的依据,在终端输入java - version,有版本号即可
2.下载jmeter (老规矩,从CSDN 搜教程)
3.终端配置完环境变量后,输入jmeter回车,打开可视化工具 【不想配置的话,可以cd到jmeter的bin目录下,输入sh jmeter回车即可】
二.软件入门【基本架构】
1.测试计划下,添加线程组,线程组下方添加http请求
2.测试计划下,添加查看结果树
3.填写完http协议和域名后,保存脚本,点击上方绿色三角按钮,运行
4.在结果树中,查看结果
三.基础功能
1.断言
A.响应断言:【查看状态码是否为200,操作步骤如下】
在http请求下方添加响应断言,首行name填写断言名称,field to test下选择断言数据的类型,如:响应文本/响应状态码/响应数据…. 勾选响应状态码,在patterns to test下方添加断言预期结果:200,control+s保存后,点击运行,查看结果树,✅表示成功,❎表示断言失败。
如果要查看响应内容是否包含:百度一下,你就知道,则field to test选中响应文本,patterns to test下方添加断言预期结果:百度一下,你就知道
B.json断言:【查看city字段下的值是否为北京】 首先:创建基本架构:线程组-http请求-查看结果树;http请求下,创建json断言
第一步:http请求中,name和comments下输入断言名称和接口http://www.weather.com.cn/data/sk/101010100.html,path=/data/sk/101010100.html 完成后保存并运行,到结果树中把text修改为json jmespath tester,即为校验断言地址的地方。在jmespath expression 输入:$.weatherinfo.city,点击test,确认地址结果
第二步:复制断言的地址,在json assertion中,粘贴到assert json path exists处。勾选additionally assert Value,,在expected value处填写预期结果:北京
最后:保存后运行,查看结果树
2.参数化:
A: 简单参数化
请求:https://www.baidu.com:443
要求:使用参数化来定义配置:被测系统的协议,域名和端口号
解决办法:
首先:搭建基础架构
其次:在测试计划下添加全局变量 点击add,添加自定义的变量名,后面的值填协议,域名,端口号 【全局变量,即在整个测试计划下,都可使用该变量】 【用法是:${变量名},例如${aaa},它的值为https】
最后:将http请求中的基础值,用自定义的参数来代替 【例如:http的位置填${aaa},server name的位置填${bbb},port number位置填${ccc}】
B:csv数据文件参数化【测试场景:测试登录接口,给你几个不同的数据,进行测试】
请求:https://www.baidu.com
要求:循环请求三次,每次请求时附带参数username,password,code
解决办法:首先添加线程组,定义数据文件,即在桌面text文本输入内容
其次 : 线程组设置循环次数:X。⚠️注意:循环次数依据text文本中,有几条数据,就定义为几次 测试计划下,添加配置元件【csv数据文件设置】,进行配置,配置顺序:文件路径>文件编码>变量名>是否忽略首行 添加http请求,填写基础项后,点击下方add添加名称username, password,code,值填:${aa} ${bb} ${cc}
最后保存,添加结果树,运行查看结果
3.联结提取器【将一个接口中的响应的信息,作为另一个接口请求的参数】
A.json提取器
要求: 请求获取天气的接口:http://www.weather.com.cn/data/sk/101010100.html,获取返回结果中的城市名称:“北京” 请求接口:https://www.baidu.com/s?wd=北京,把获取到的城市名称作为请求参数
操作步骤:
首先:添加线程组,线程组下方添加两个http请求,分别命名为:请求天气,百度。填写完对应请求信息后,保存。添加结果树运行,正确即可。
其次:在http请求下,添加后置处理器,add>post processors> json extractor 在json path位置添加正则表达式的位置【即天气接口下,北京在json中的位置】 在json path 上方填写自定义的变量名,例如【hahaha】;此时去北京http接口下,将wd的值更改为${hahaha}
最后保存运行,在结果树查看结果
B.正则提取器 :略
4.直连数据库
首先:添加mysql 驱动jar包【在测试计划面板点击浏览…按钮,将你的jdbc驱动添加—本脚本可用】【将mysql驱动jar包放入到jmeter文件夹下的lib/ext目录下,重启jmeter-所有脚本可用】
其次:配置数据库连接信息【数据库连接池名称pool【随便起】;数据库url(协议+数据库ip+数据库端口+连接的数据库名称=jdbc:mysqul://locahost:3306/数据库名称);数据库驱动包(下拉框选择com.mysql.jdbc.driver),数据库用户密码 添加jdbc请求【数据库连接池名称,query type ,sql语句】
最后保存运行,添加结果树查看结果【位置:测试计划下方>配置元件>jdbc connection configuration,线程组下方添加jdbc请求,添加结果树】
附:
可能遇到的问题:
1.响应数据乱码 在访达中找到jmeter.properties文件,搜索sampleresult.default.encoding,取消此行代码的注释,并修改此字段下的参数为UTF-8,保存后重启jmeter.
2.如果保存文件,如何导入文件 导入的方式:每次运行前,会先要求保存文件,然后才可以运行;当我们再次打开jmeter时,里面是空白的,点击菜单栏第三个黄色文件夹的icon,选择之前保存的文件,点击确定。即可导入。 保存的方式:点击菜单栏第四个icon或control+s
3.有多个断言时,如何查看结果 如果第一个断言失败,则后面的断言不会执行。查看结果树时,上面无论几个断言,最后结果树只会出现一个结果:成功/失败。
4.切换响应文本格式 在结果树中,将text选择为json或其他格式。
5.导入csv文件时,注意选对路径,要不然会报错
6.什么时候可以使用json提取器?响应数据是json格式时会用到
推荐视频:【2小时讲解Jmeter实现接口测试-哔哩哔哩】 https://b23.tv/GKhukLX