一.Jmeter增加数据时无法填入中文
解决办法:修改jmeter目录下的文件
二.Python run_server.py服务启动失败
原因:python自身bug,需要修改python文件
解决办法:根据报错的最后一行进入指定目录修改代码格式
151行代码最后多了一个逗号
三.Jmeter增加数据时,无法识别json格式
原因:若不进行设置,jmeter默认上传的是text格式文件,需要对默认上传格式进行修改
基于测试计划添加一个元件,HTTP信息头管理器,添加一次,对所有请求都起作用
步骤:添加HTTP信息头管理器
添加字段名:Content-Type,字段值:application/json。
如图
四.多线程的执行顺序修改
1,JMeter默认线程组的执行方式是并行执行的。
1,先开始的,不一定先结束
2,后开始的,不一定后结束
2,(重点)修改线程组的执行方式为顺序执行。沿着树形标签栏,从上往下,依次执行。
解决方式:测试计划中,勾选,独立运行每个线程组。
五.设置请求信息默认值
六.数据库无法连接
打开服务,直接将文件拖入数据库即可
打开失败可能是文件选择错误,点击左上角添加库,在目录中添加
七.Jmeter报红
首先自己问自己如下两大问题:
一、我的项目启动了吗?
1,没有启动,到项目目录下启动
2,没有反应(没有交互的信息),重启项目
二、我的接口请求构造正确吗?
1,我想要实现什么功能?增删改查,例如是新增
2,我构造的请求,是按照新增接口的要求构造的吗?
--1,接口文档中,新增接口的四要素是什么?列出来
--2,我在Jmeter中构造的新增请求,四个要素是什么?跟接口文档中的四要素是一样的吗?
--3,一个要素一个要素的进行比较。
3,上面的新增可以替换为查询、更新、删除。
以上第一、第二两个问题可以解决一半的新手问题。
2,已发现问题:
1,数组变量引用,是不是加了下标?
2,变量名不变,那么
GET http://127.0.0.1:8000/api/departments/${dptid}/
--1,第一个请求的响应数据存在吗?
--2,数据库中的数据,本身是不是就是变量的引用形式?
3,我想干什么?我使用的这个接口,到底是怎么用的?我这么用对吗?
4,1和l
八.如何重复执行请求、定时请求,设置循环时间
步骤:点击线程组,出现如下图所示菜单
可以选择取样错误后要执行的操作
线程属性,可以设置线程执行的次数:
执行次数=线程数*用户次数
线程数可以类比为用户数
Ramp-Up时间,可以设置每个线程执行的时间间隔(每个用户)
列如:共设置时间为10s,设置线程数为5,则第五组线程在8s时执行
调度器:可以选择多长时间之后执行(启动延迟),共执行多长时间(持续时间),单位是S
一般需要勾选循环次数为永远
场景:可以设置下班之后循环重复执行,
九.415错误
415 Unsupported Media Type 是一种HTTP协议的错误状态代码,表示服务器由于不支持其有效载荷的格式,从而拒绝接受客户端的请求。. 格式问题的出现有可能源于客户端在 Content-Type 或 Content-Encoding 首部中指定的格式,也可能源于直接对负载数据进行检测的结果。
检查是否拼写错误
Content-Type application/json
十.Jmeter的bug
用户参数和CSV数据文件最好放在线程组下,涉及到循环,可能会出bug
十一.上传数据库的信息发生乱码
检查CSV文件编码格式是否正确,可以用notepad++更改编码格式
点击编码-更改格式为UTF-8,如果格式正确,会在UTF-8处显示标记黑点
十二.直连数据库
注意:执行顺序要正确,直连数据库放在http请求上面执行
配置信息:
- 从测试计划中添加驱动地址
- 在测试计划中添加配置原件JDBC Connection Configuration
在Variable Name for created pool处添加数据库名(自定义,任意起名即可)
在Database URL处添加数据库信息的地址,即sql文件路径,路径前需要填写 JDBC:数据库类型:
JDBC driver class:选择驱动类型
- 在线程组中添加JDBC request(JDBC请求)
填写Variable Name of pool declared in JDBC Connection configuration处填写数据库名称:即我们前面起的变量名
大空白处写SQL语句
下面Variable names可以添加变量名,可添加多个,根据得到的数据而定,添加一个时默认获取第一行
- http请求调用直连数据库获取的数据
调用方式${变量名_下标}:与python列表不同的地方是下标从1开始,使用时记得一定要带下标,单个数据也要带
十三.设置正则表达式提取器
设置方式:选择一个http请求,添加后置处理器-正则表达式处理器
格式设置如下
. 点代表任意一个字符
()代表要输出的数值
$4$:表示使用第四个变量
引用名称:变量名
匹配数字:表示变量是查找到的第几个
缺省值可以自己设置提示语句,用来表示默认值,勾选则默认为空
十四.正则表达式用法
- 正则表达式正常填写时引用名称代表变量名,模板代表正则表达式中的第几个变量,匹配数字表示在所提取内容中找到的第几个
- 匹配数字写-1时,查找所有变量,可以通过添加调试后置处理程序,然后运行脚本,点开提取执行的脚本的的下一个脚本,可以看到所有的变量,写其他数据时同理
十五.Xpath用法
记得勾选use Tidy
十六.CSVRead函数查不到中文信息
函数使用方法如下,直接调用按要求填写即可
使用过程中可能会出现读取不到CSV文件中数据的情况,原因是中文可能乱码,将CSV文件格式转为ANSI可解决,不可使用(使用ANSI编码)
使用时要注意,调取第一列数据需要设置列数为0
按列调用时需设置线程数为多个才能循环调取
十七.断言
常用断言有四种
同一请求可以添加多个断言,只要有一个断言不通过则不通过
响应断言(文本断言、代码断言)
大小断言(相关信息可在取样器结果查看,第五张图)
持续时间断言
十八.逻辑控制器
If逻辑控制器
循环控制器
只需要填写循环次数即可
Forecah
相当于函数嵌套,可代替函数嵌套使用
十九.生成测试报告
一、聚合报告
一种监听器,用来统计发送的请求和收到的响应
生成HTML格式的测试报告:
- dos窗口命令行方式:
0,Jmeter.bat所在路径添加到环境变量path中
- dos窗口命令行方式:
- 保证cmd在Jmeter脚本所在目录打开
- jmeter -n -t 脚本路径和名称 -l 日志文件路径和名称 -e -o 报告文件路径和目录名称
例子:jmeter -n -t 冒烟测试.jmx -l maoyanceshi.txt -e -o ./result
-n:NO GUI,以非GUI形式运行脚本
-t:指定脚本名称
-l:指定存放日志的文件名。确保每次生成都没有已存在的文件名。只支持三种格式:
- Jtl
- Txt
- 没有后缀
-e:生成html格式的报告文档
-o:指定存放报告文档的目录
/result:盘符根目录下的result文件夹(如果不存在就自动创建)。注意/前面没有点(.)。如果是./result,则表示当前目录下的result文件夹。目录不能重名。
-
- 文件名可以指定路径
- GUI结合dos窗口:
首先在聚合报告页面设置日志存放路径:
其次,Jmeter GUI界面运行脚本
然后,在dos命令窗口运行:
Jmeter -g maoyanceshi01.txt -o ./result01
进入 ./result01,双击index.html文件,浏览结果报告内容
观察效果:



