上次写了在接口的交互过程中,系统返回的内容,需要在接下来的交互中用到,从而把参数进行参数化的关联,这次写一下在压测过程中,如果每次发起请求参数名相同,单参数值需要替换的,我们需要进行的参数化。

在使用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的操作先说到这里,后续继续学习,加油~

最新文章

  1. Android 软件盘 Editext 问题
  2. Django1.3 创建项目
  3. iOS 报错 :Duplicate interface definition for class’*'
  4. 关于DButils的简单介绍
  5. oracle 11g设置打开空表extent储存块
  6. axis2调用webservice
  7. Bzoj 1036: [ZJOI2008]树的统计Count 树链剖分,LCT
  8. block中无法使用C数组变量
  9. 什么是位、字节、字、KB、MB
  10. Easyui + jQuery表单提交 给 Controller patr1
  11. openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
  12. PKI信息安全知识点详细解答包含HTTPS
  13. webpack+babel项目在IE下报Promise未定义错误引出的思考
  14. spring-cloud-sleuth 和 分布式链路跟踪系统
  15. Vue.js模板语法
  16. bs4
  17. 如何在Lua与C/C++之间实现table数据的交换
  18. 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
  19. Android通过包名启动其他应用,若该应用已启动,则直接将应用切到前台
  20. Vue学习记录(二)

热门文章

  1. Centos7搭建ansible运维自动化工具
  2. DNS详细解析过程【转】
  3. 爬虫文件存储:txt文档,json文件,csv文件
  4. python之cookbook-day04
  5. 实验十二 团队作业8:软件测试与Alpha冲刺 第三天
  6. 【codeforces 768E】Game of Stones
  7. BUPT2017 wintertraining(15) #9
  8. cxf 和 httpclient 客户端调用 webservice 接口
  9. Android音乐、视频类APP常用控件:DraggablePanel(2)
  10. HDU 3247 Resource Archiver (AC自己主动机 + BFS + 状态压缩DP)