栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

接口测试——Jmeter常见问题解决方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口测试——Jmeter常见问题解决方法

一.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请求上面执行

配置信息:

  1. 从测试计划中添加驱动地址
  2. 在测试计划中添加配置原件JDBC Connection Configuration

在Variable Name for created pool处添加数据库名(自定义,任意起名即可)

在Database URL处添加数据库信息的地址,即sql文件路径,路径前需要填写 JDBC:数据库类型:

JDBC driver class:选择驱动类型

  1. 在线程组中添加JDBC request(JDBC请求)

填写Variable Name of pool declared in JDBC Connection configuration处填写数据库名称:即我们前面起的变量名

大空白处写SQL语句

下面Variable names可以添加变量名,可添加多个,根据得到的数据而定,添加一个时默认获取第一行

  1. http请求调用直连数据库获取的数据

调用方式${变量名_下标}:与python列表不同的地方是下标从1开始,使用时记得一定要带下标,单个数据也要带

 

 

 

十三.设置正则表达式提取器

设置方式:选择一个http请求,添加后置处理器-正则表达式处理器

格式设置如下

. 点代表任意一个字符

()代表要输出的数值

$4$:表示使用第四个变量

引用名称:变量名

匹配数字:表示变量是查找到的第几个

缺省值可以自己设置提示语句,用来表示默认值,勾选则默认为空

十四.正则表达式用法
  1. 正则表达式正常填写时引用名称代表变量名,模板代表正则表达式中的第几个变量,匹配数字表示在所提取内容中找到的第几个
  2. 匹配数字写-1时,查找所有变量,可以通过添加调试后置处理程序,然后运行脚本,点开提取执行的脚本的的下一个脚本,可以看到所有的变量,写其他数据时同理

 

十五.Xpath用法

记得勾选use Tidy

十六.CSVRead函数查不到中文信息

函数使用方法如下,直接调用按要求填写即可

使用过程中可能会出现读取不到CSV文件中数据的情况,原因是中文可能乱码,将CSV文件格式转为ANSI可解决,不可使用(使用ANSI编码)

使用时要注意,调取第一列数据需要设置列数为0

按列调用时需设置线程数为多个才能循环调取

 

十七.断言

常用断言有四种

同一请求可以添加多个断言,只要有一个断言不通过则不通过

响应断言(文本断言、代码断言)

大小断言(相关信息可在取样器结果查看,第五张图)

持续时间断言

 

 

 

十八.逻辑控制器

If逻辑控制器

循环控制器

只需要填写循环次数即可

Forecah

相当于函数嵌套,可代替函数嵌套使用

 

十九.生成测试报告

一、聚合报告

一种监听器,用来统计发送的请求和收到的响应

生成HTML格式的测试报告:

  • dos窗口命令行方式:

0,Jmeter.bat所在路径添加到环境变量path中

  1. dos窗口命令行方式:
    1. 保证cmd在Jmeter脚本所在目录打开
    2. jmeter -n -t 脚本路径和名称 -l 日志文件路径和名称 -e -o 报告文件路径和目录名称

例子:jmeter -n -t 冒烟测试.jmx -l maoyanceshi.txt -e -o ./result

-n:NO GUI,以非GUI形式运行脚本

-t:指定脚本名称

-l:指定存放日志的文件名。确保每次生成都没有已存在的文件名。只支持三种格式:

  1. Jtl
  2. Txt
  3. 没有后缀

-e:生成html格式的报告文档

-o:指定存放报告文档的目录

/result:盘符根目录下的result文件夹(如果不存在就自动创建)。注意/前面没有点(.)。如果是./result,则表示当前目录下的result文件夹。目录不能重名。

    1. 文件名可以指定路径
  • GUI结合dos窗口:

首先在聚合报告页面设置日志存放路径:

其次,Jmeter GUI界面运行脚本

然后,在dos命令窗口运行:

Jmeter -g maoyanceshi01.txt -o ./result01

进入 ./result01,双击index.html文件,浏览结果报告内容

观察效果:

 

 

 

 

 

 

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号