jmeter 参数化学习笔记
上次写了在接口的交互过程中,系统返回的内容,需要在接下来的交互中用到,从而把参数进行参数化的关联,这次写一下在压测过程中,如果每次发起请求参数名相同,单参数值需要替换的,我们需要进行的参数化。
在使用Jemeter做压力测试的时候,比如登录接口,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的.或者注册接口也需要大量不同的用户名和密码的用户以达到目的。
一、使用CSV Data Set Config实现参数化
我们以上次说到的添加学生信息接口为例来实验。
首先通过Test Plan或者Thread Group或http请求的Add->Config Element->CSV Data Set Config添加
以下是CSV Data Set Config各个参数的简要说明:
- FileName:参数化文件的读取位置,
- File Encoding: 选择UTF-8
- Varible Names: 变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开。例如username,passwd。参数化文件中同样有对应的两列数据。)
- Delimiter:分隔符,默认逗号。
- Allow Quoated data: 是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。
- Recycle on EOF: 设置为True后,允许循环取值
- Stop Thread on EOF: Recycle on EOF和Stop thread on EOF按需设置。是否循环,到结尾是否停止测试。
- Sharing Mode: 设置是否线程共享,allthreads表示所有的线程都可以利用此参数化。
准备测试数据
添加学生信息接口
请求URL:http://api.nnzhp.cn/api/user/add_stu
- 请求方式 post
- 参数 ,入参是json类型
参数名 必选 类型 说明
name 是 string 学生姓名
grade 是 string 班级
phone 是 string 电话
sex 否 string 性别,如果不传,默认为男
age 否 string 年龄 ,不传默认为18
add 否 string 地址,如果不传默认为北京市昌平区
返回参数说明
参数名 类型 说明
error_code int 错误编码,1000为操作成功
msg string 提示信息
创建学生账号的时候,手机号码不能重复,姓名我们也设置为不重复,则需要参数化的参数为:name,phone
新建文件userinfo.txt
填写相应的信息
引用方法是 ${} ;其中{}内写入参数化中的变量。
线程数我们设置为1.循环11次,表示一个用户调用这个接口11次;因为文件中只有10条数据,我们可以看一下循环之后的效果;
点击运行,查看结果树
我们可以看到请求调用的11次,第一次的phone为1结尾;第二个请求获取的phone为2结尾;
第10个是调用成功的,第11个是执行失败的,手机号码重复的。
如果只从调用结果中我们看不出添加是否成功,所以可以添加断言来看是否达到了我们预期的效果;
APPly to:适用范围
Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
Main sample only:仅作用于父节点取样器
Sub-samples only:仅作用于子节点取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)
要测试的响应字段:要检查的项
响应报文
Documeng(text):测试文件
URL样本
响应代码
响应信息
Response Headers:响应头部
Ignore status:忽略返回的响应报文状态码
模式匹配规则:
包括:返回结果包括你指定的内容
匹配:(好像跟Equals查不多,弄不明白有什么区别)
Equals:返回结果与你指定结果一致
Substring:返回结果是指定结果的字串
否:不进行匹配
要测试的模式:即填写你指定的结果(可填写多个),按钮【添加】、【删除】是进行指定内容的管理
此处我们选择响应文本,选择规则为包括,内容为:操作成功 ,意思为返回结果中包括“操作成功”则创建用户成功;
我们在来执行一次上面的操作:
我们可以看到最后一次执行的结果是红色的,查看断言结果为匹配失败。
二、使用函数助手对话框实现参数化
jmeter中创造函数随机数的工具在选项->函数助手对话框
在函数里选择一个功能,例如_Random
设置一个最小数,一个最大数和一个参数名,点击生成,生成函数字符串,放入到需要参数化的参数中
${__Random(1000,1100,name2)}
同样的道理,我们对手机号也执行此操作
我们再来执行一下操作
可以看到执行结果中,我们传入的参数为设置的随机数中的随机数,11次调用结果都是成功的,因为没有重复。
好了,这次jmeter的操作先说到这里,后续继续学习,加油~
最新文章
- Android 软件盘 Editext 问题
- Django1.3 创建项目
- iOS 报错 :Duplicate interface definition for class’*'
- 关于DButils的简单介绍
- oracle 11g设置打开空表extent储存块
- axis2调用webservice
- Bzoj 1036: [ZJOI2008]树的统计Count 树链剖分,LCT
- block中无法使用C数组变量
- 什么是位、字节、字、KB、MB
- Easyui + jQuery表单提交 给 Controller patr1
- openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
- PKI信息安全知识点详细解答包含HTTPS
- webpack+babel项目在IE下报Promise未定义错误引出的思考
- spring-cloud-sleuth 和 分布式链路跟踪系统
- Vue.js模板语法
- bs4
- 如何在Lua与C/C++之间实现table数据的交换
- 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
- Android通过包名启动其他应用,若该应用已启动,则直接将应用切到前台
- Vue学习记录(二)
热门文章
- Centos7搭建ansible运维自动化工具
- DNS详细解析过程【转】
- 爬虫文件存储:txt文档,json文件,csv文件
- python之cookbook-day04
- 实验十二 团队作业8:软件测试与Alpha冲刺 第三天
- 【codeforces 768E】Game of Stones
- BUPT2017 wintertraining(15) #9
- cxf 和 httpclient 客户端调用 webservice 接口
- Android音乐、视频类APP常用控件:DraggablePanel(2)
- HDU 3247 Resource Archiver (AC自己主动机 + BFS + 状态压缩DP)