小伙伴们在使用JMeter的过程中,肯定会遇到参数值传递的问题,下面来和大家总结下,在使用JMeter做压力测试的时候,常见的3种参数值的传递是怎样的。

(一)从CSV文件读取要批量输入的变量

假如我们要登录的数据保存在login.csv文件里,数据如下:

在JMeter中,我们需要添加CSV Data Set Config这个配置文件,如下图:

添加后,我们需要填写其中的必要参数,如Filename和Variable Names:

这里要注意下Variable Names里面的分隔符,为啥是用’,’号呢,因为csv文件login.csv用notepad++打开是如下所示,前面的字段是代表用户的user,后面的字段代表的pwd:

配置好CSV Data后,我们添加login的HTTP请求,截图如下:

其中用户的user和pwd都是用${}包围着的,这个是JMeter的语法规定。配置线程数为5,点击启动按钮运行后,看到的结果如下:

可以看到,login.csv文件中的2个字段被当作参数值进行了传递。

(二)利用Cookie进行值的传递

用JMeter进行接口调试时,有时候会遇到需要登录的情况,如请求wetest的DataSearchAjax接口:

返回的结果如下:

出现这种情况的原因很明显是未登录引起的。一个较好的解决方法就是将登录后的cookies保存下来,在访问DataSearchAjax接口的时候,带上用户登录后的cookies信息进行查看。

在JMeter中,我们可以通过如下途径进行cookies的传递,如下图添加HTPP Cookie管理器:

再给登录的接口添加前置处理器Bean Shell PreProcessor,用来保存登录的cookies:

下面,我们要在Bean Shell PreProcessor里面添加我们的cookies值了。

import org.apache.jmeter.protocol.http.control.CookieManager;

import org.apache.jmeter.protocol.http.control.Cookie;

// 身份验证必须的cookie值字段(可以询问开发哪些是必须要校验的字段)

// 可以在登录后,点击chrome里URL右边的查看网站信息按钮,查看所有的cookie值找到

// wetest的校验字段是:csrftoken和sessionid

CookieManager manager = sampler.getCookieManager();

String csrftoken = "898b3ade5cb3744140503da601dee5d6793f82807cda581de9eb0982c05dfdc7a";

//定义Cookie对象,其中参数:cookie的名称, cookie值, cookie域, 路径, 安全

Cookie cookie = new Cookie("csrftoken",csrftoken,"wetest.qq.com","/",false,0);

manager.add(cookie);

String sessionid = "0ir0hrodptu5qgv9qurk98c3l4";

Cookie cookie1 = new Cookie("sessionid",sessionid,"wetest.qq.com","/",false,0);

manager.add(cookie1);

添加完HTPP Cookie管理器和在前置处理器Bean Shell PreProcessor写好脚本后,再次运行登录接口和DataSearchAjax接口:

可以看到,后面的请求携带了我们在Bean Shell PreProcessor脚本中保存的cookie值,并且成功返回了要查询的数据。

(三)利用正则匹配提取上一个接口的返回数据作为下个请求的输入

用JMeter进行接口调试时,经常会遇到上一接口的返回值中的某个字段,要作为下一接口的输入,这种情况下,我们需要利用正则匹配来提取我们需要的值。

例如,若要提取相应数据中的goodpraise字段作为下个接口的输入的话,可以在该接口请求后面添加正则表达式提取器:

我们给正则表达式提取器命名为get_goodpraise,并填写引用名称、正则表达式、模板、匹配数值、缺省值,填写后的如如下:

填写完成后,在添加新的HTTP请求,来测试提取到的goodpraise_name字段:

这里要注意,${}里面填写的一样要是引用名称的变量,保存后执行:

若返回的请求goodpraise_name字段为-1,-1是我们设定的默认字段。那说明我们的正则表达式写错了,要仔细检查下改成正确的正则表达式,再执行:

可以看到,我们提取到的goodpraise_name字段成功传递给新的http请求。

至此,JMeter中3种参数值的传递已全部讲解完,小伙伴们学会了吗~*(^_^)*~

本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/

转载于:https://www.cnblogs.com/ceshi2016/p/6029407.html

JMeter中3种参数值的传递相关推荐

  1. 在JMeter中提取token值并传递给其它接口使用

    在使用JMeter对接口进行测试时,会有一些变量值的变化,导致接口无法获取数据,比如token值或者session值,这时可以通过正则表达式提取器来获取接口返回token值,并作为一个参数传递给后面需 ...

  2. Jmeter中的几种协议

    FTP ftp的默认端口号是21,22是ssh,23是Telnet,3306是MySQL数据库,1543是seqserver,80是http,443是https,8080是Tomcat FTP即Fil ...

  3. JMeter中如何实现参数化(CSV)

    1.参数化的定义 参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些参数使用变量来代替.例如登录操作时,利用GET/POST请求方式传递参数的场景,可在脚本运行时指定参数的取值范围和规则. 脚本在 ...

  4. jmeter参数传递三种方法

    参数的传递分为线程组内和多个线程组之间的传递,因为每个线程组之间是独立的,所以多个线程组之间的传递需要用到beashell后置处理器将提取的参数设置为全局变量. 1.线程组内传递:正则表达式.json ...

  5. JMeter参数化4种实现方式

    前言 下面是目前JMeter系列已有博文列表,持续更新中: JMeter安装与接口测试入门 JMeter接口测试之断言实现 JMeter参数化实现方式 JMeter配置元件 JMeter操作Mysql ...

  6. unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式

    原文 https://segmentfault.com/a/1190000011093597 在Spring Cloud中服务的发现与消费一文中,当我们从服务消费端去调用服务提供者的服务的时候,使用了 ...

  7. Spring RestTemplate中几种常见的请求方式

    关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 在Spring Cloud ...

  8. 转帖Jmeter中的几个重要测试指标释义

    Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为"聚合报告".今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下, ...

  9. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939 版权声明:本 ...

最新文章

  1. Django 视图URLconf3.1
  2. [Mac] mac linux 多线程下载利器 axel
  3. 广州商学院Python正方教务系统爬虫(获取个人信息成绩课表修改密码)
  4. python表达式3and not5的值_太原理工大学python考试题总结
  5. [.NET] Rough Dependency Injection
  6. Tensorflow基础-mnist数据集
  7. PHP的define与const
  8. SAE 助力「海底小纵队学英语」全面拥抱 Serverless,节省 25% 以上成本
  9. 解决三星手机EditText背景色的问题
  10. mysql 查外键关联关系 (指定被引用表,查哪些表对其有外键引用)
  11. @value 默认值为null_JAVA8之妙用Optional解决判断Null为空的问题
  12. logstash-input-redis源码解析
  13. Windows数据类型探幽
  14. gaussian软件linux版本,Gaussian 09的版本与平台。
  15. 阿里云轻量应用服务器从购买到配置环境以及部署javaweb项目过程
  16. Java String 常量池
  17. 听说你的淘客群又做死了?来学学群维护这几招!
  18. js 中的 let 关键字
  19. 微信小程序之本地网络服务器配置
  20. 通过计算机组成原理你能得到什么?

热门文章

  1. Android普及入门
  2. spark加盐(salting)操作
  3. GPU代码修改成TPU代码
  4. sublime中文输入(转)
  5. mysql 排序_MySql的几种排序方式
  6. python设置全局变量失败_Python全局变量与global关键字常见错误解决方案
  7. 驱动人生服务器版本_电脑驱动怎么装?电脑刚装系统怎么装驱动?
  8. 顺序执行_执行流程 | 你真的了解Spring AOP的执行顺序吗?
  9. top命令---Linux学习笔记
  10. ubuntu中解决无法调节屏幕亮度的问题