本章大纲
什么时候需要参数化技术
参数化技术是什么
jmeter实现参数化
什么时候需要参数化技术
单点登录:如果10个用户登录,用户名和密码不做参数化,后面的请求会将前面所有用户账号顶掉。
adduser:增加用户但手机号唯一,就需要对手机号做参数化
多点登录可以不做参数化,如果要真实的模拟用户操作,还是需要做参数化的
参数化技术是什么
参数化一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时置顶参数的取值范围和规则
jmeter实现参数化
参数化流程:
找出需要参数化的数据
准备提供给参数化需要的数据源
把脚本里面的常量--变量(使用之前的数据源数据)
jmeter参数化方式:
1、CSV 需要配置元件
使用场景:账号、密码
token是有时效的,一般有两种方式:1. 固定时效,比如:1个月;2. 不用就时效
注释:首先要明确参数化的作用域:如果是对整个测试计划有用,将其放在测试计划下面,如果是对这个线程组有用则放在线程组下面;如果是对这个请求有用,则放在这个请求下面。
1-1 添加csv数据文件设置:
image.png
1-2 设置数据文件:
image.png
1-3 将http请求参数常量改成变量:
image.png
重新发起请求即可
2、函数式:
随机数:通过函数助手 - _Random,比如:手机号就可以用随机数来表达
time:通过函数助手 - _time,比如:订单号,编号类的就可以用时间戳来表达,默认ms,13位数据,如果是s,10位数据
image.png
果接口的请求头包含token时,我们需要从之前的接口中提取token,将提取到的token写入当前接口请求头信息中。
示例:如果用jmeter测试,找到之前的接口,添加 - 后置处理器 - json提取器:输入token变量名,json path的语法格式:{getToken}
image.png
Jmeter创建接口脚本时遇到的问题?
msg:token值为空?
解决方案:在请求头中添加一个token
message:客户姓名必须为中文?
解决方案:请求中添加编码格式
message:该客户手机号码已存在?
解决方案:手机号必须做参数化,通过函数助手中的__Random,设置最小值和最大值,生成表达式并拷贝,将其与写死的手机号替换
image.png
3、变量
接口环境不同,使用的服务器ip就不同,我们可以“线程组 - 添加 - 配置元件 - 用户定义的变量”
image.png
image.png
4、编程式
引入外部的jar(比如:加密、算法、环境类的jar--开发给的),Java、class,直接导入
image.png使用beanshell编程
import com.uncleyong.MD5Util;
String password_md5 = MD5Util.encryptToMD5("123456");
vars.put("password_md5", password_md5);
image.png
image.png
发送请求后,从查看结果树中可以看到请求的密码加密了
image.png
网友评论