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

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

jmeter 参数化学习笔记的更多相关文章

  1. JMeter接口学习笔记2017

    协议学习地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 本篇学习笔记来自于慕课网上学习JMeter的学习笔记 学习 ...

  2. jmeter接口测试 ——学习笔记

    JMETER常用操作 1.jmeter做http脚本 Http请求页面内容介绍 添加cookie 线程组-添加-配置元件--HTTP Cookie管理器 添加权限验证 不能使用普通用户修改学生金币,接 ...

  3. jmeter新手学习笔记(一)

    使用jmeter做接口测试--设置线程组 1.创建线程组 2.设置线程数配置信息 线程组:常用于模拟并发用户访问,例如需要100个用户访问该接口,线程数则设置为100 Ramp-Up Period:决 ...

  4. jmeter 参数化学习之CSV Data Set Config随机读取一行参数

    需要使用到循环控制器,if控制器,CSV Data Set Config,Random Variable 4个组件 如图 先在线程组下面放一个随机数生成器 然后在同一层级设置一个永久的循环控制器,记住 ...

  5. Jmeter学习笔记(十五)——常用的4种参数化方式

    一.Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作.若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据. 参数化是自动化测试脚本的一 ...

  6. ADO学习笔记之注入漏洞与参数化查询

    ADO学习笔记之注入漏洞与参数化查询 作为新手,在学习ADO程序时,使用 sql 语言查询数据时,很容易写类似如下代码: using (SqlConnection con = new SqlConne ...

  7. JMeter学习笔记(三)

    D. User Defined Variables:用户自定义的变量,在此我们可以定义后面原件需要引用的变量并对其进行赋值.jsessionid一般是服务器返回的,每个用户返回的都不一样,所以在此不应 ...

  8. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

  9. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章)

    前言 这是一篇学习笔记. 学习的材料来自Jay Kreps的一篇讲Log的博文. 原文很长,但是我坚持看完了,收获颇多,也深深为Jay哥的技术能力.架构能力和对于分布式系统的理解之深刻所折服.同时也因 ...

随机推荐

  1. 表单enctype属性传值问题

    form表单的enctype设置为multipart/form-data后,表单中除了文件后台能拿到,其他值后台都拿不到. 知识点: 一.application/x-www-form-urlencod ...

  2. GFS分布式文件系统脚本

    #!/bin/bashfor i in $(fdisk -l | grep -wo "/dev/sd[b-z]" | sort)dodd if=/dev/zero of=$i bs ...

  3. swift-UINavigationController纯代码自定义导航控制器及底部工具栏的使用

    step1:自定义一个类  NTViewController,该类继承UITabBarController: // // NTViewController.swift // Housekeeper / ...

  4. c/c++排坑(2) -- c语言中的符号重载

    所谓的符号重载就是在不同的上下文环境里有不同的意义.甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因. 本章内容摘自<c专家编程>P37. 大家 ...

  5. 18.match_phrase的用法

    主要知识点: match_phrase的使用场景 match_phrase的用法 match_phrase的原理     一.什么是近似匹配 match_phrase的使用场景 现假设有两个句子   ...

  6. 16.copy_to定制组合field解决cross-fields搜索弊端

    主要知识点: 在index的mapping中加copy_to字段的方法 copy_to搜索方法     用most_fields策略,去实现cross-fields搜索,有3大弊端,为了解决这三个弊端 ...

  7. 【6】Django视图函数

    治大国若烹小鲜.以道莅天下 --老子<道德经> 本节内容 Django web项目的运行流程分析 视图处理函数的定义 多视图处理函数及接收参数 1. web项目运行流程分析 通常情况下,完 ...

  8. Struts2 Action重启偶尔404 偶尔正常

    这是一个痛苦的教训 因想懒省事,复制module.action  到product.action  跟user.action 然后修改代码内容  ,最痛苦的是  还用查找替换功能进行全部文字替换  , ...

  9. [转]十五天精通WCF——第十天 学会用SvcConfigEditor来简化配置

    我们在玩wcf项目的时候,都是自己手工编写system.serviceModel下面的配置,虽然在webconfig中做wcf的服务配置的时候,vs提供大多 数的代码提示,但对于不太熟悉服务配置的小鸟 ...

  10. wps h5制作软件

    相当好用这个