JMeter 中 3 种参数值的传递

这篇具有很好参考价值的文章主要介绍了JMeter 中 3 种参数值的传递。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

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

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

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


前言:

 在JMeter中,参数值的传递是非常重要的,因为它允许你在测试过程中动态地设置和使用不同的值。这样可以模拟真实的场景,并对应用程序的性能进行更准确的测试。

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

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

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

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

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

返回的结果如下:

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

出现这种情况的原因很明显是未登录引起的。一个较好的解决方法就是将登录后的 cookies 保存下来,在访问 DataSearchAjax 接口的时候,带上用户登录后的 cookies 信息进行查看。
在 JMeter 中,我们可以通过如下途径进行 cookies 的传递,如下图添加 HTPP Cookie 管理器:

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

下面,我们要在 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 接口:

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试


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

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

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

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

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等)

相信能使你更好的进步!

点击下方小卡片

JMeter 中 3 种参数值的传递,软件测试工具,软件测试,自动化测试,jenkins,jmeter,自动化,测试工具,windows,http,单元测试文章来源地址https://www.toymoban.com/news/detail-555706.html

到了这里,关于JMeter 中 3 种参数值的传递的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试进阶之jmeter的性能测试和性能指标详解

    jmeter里头是脚本: 测试计划 线程组 http请求:接口请求控件 信息头管理器:请求头(content-type、token) 传参:类型:url传参(接口地址加上信息)、bodydata传参:通常用json格式传参,表单格式from-data get:获取资源、get用url post:传参、bodydata传参 查看结果树:查看响应结果

    2023年04月08日
    浏览(38)
  • 软件测试技能,JMeter压力测试教程,Plugins Manager插件管理器(十三)

    前面讲了JDBC连接数据库的时候,需下载mysql对应的jar包,放到libext目录下就可以使用了 jmeter 有个插件管理器Plugins Manager,可以方便的管理其他插件的下载和更新 下载地址:https://jmeter-plugins.org/install/Install/ 下载插件后把jar包放到 lib/ext 目录,然

    2024年02月07日
    浏览(49)
  • 【软件测试】技术精选:Jmeter常见的几种报错

    这个错的含义是 没有连接到服务器地址,因此很可能是 内部网络中断导致。 这个和本地的线程数无关 可能原因是网络抖动不稳定导致 强制停止线程,连接中断产生的错误,正常压测我们等测试结束就好,不用强制停止 这个错误的导致是由于请求接口 设置的请求超时与 请

    2024年02月16日
    浏览(54)
  • Jmeter进行压力测试不为人知的秘密_jmter压力测试,软件测试面试项目

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月22日
    浏览(37)
  • 接口测试 再也不必来回切换,发现一个接口测试软件,可以替代 Swagger+Mock+Jmeter+Postman

    日常测试过程中,常常需要多种工具来接力完成自己的接口测试任务。 比如说, 使用swagger查看接口文档, 使用mock编造接口数据对前端页面做测试 使用postman测试后端接口, 用Jmeter来做接口自动化测试/性能测试。 那有没有一款软件可以完美集成以上所有的功能? 笔者发现

    2024年02月15日
    浏览(47)
  • 性能测试工具 jmeter 录制脚本,传递 cookie,循环执行接口

    目录 前言: 代理录制脚本 循环重复添加接口 登录并传递 cookie 给新建产品接口 循环执行脚本  在使用JMeter进行性能测试时,录制脚本是一种常用的方法。录制脚本可以帮助你捕获和重放用户与应用程序之间的交互,以模拟真实的用户行为。

    2024年02月16日
    浏览(42)
  • 软件测试|详解 Pytest 参数化:简化测试用例的编写

    简介 Pytest 是一个广泛使用的 Python 测试框架,它提供了丰富的功能来编写和执行测试用例。其中一个强大的特性是参数化,它允许我们通过一种简洁的方式运行多个输入参数的相似测试用例,从而减少冗余的代码。本文将详细介绍 Pytest 的参数化功能以及如何使用它来简化测

    2024年01月20日
    浏览(43)
  • 【软件测试】- 将 Selenium 和 JMeter 测试脚本集成到 Jenkins 中实现自动化测试和持续集成(CI)及Jenkinsfile 实现 Jenkins Pipeline 原理介绍

    将 Selenium 和 JMeter 测试脚本集成到 Jenkins 中是实现自动化测试和持续集成(CI)的关键步骤。以下是详细的集成过程: 1、准备工作 安装 Jenkins : 确保您已经在服务器上安装了 Jenkins。 可以从 Jenkins 官网 下载并安装。 安装必要的插件 : 在 Jenkins 中安装所需的插件,如 Git 插

    2024年02月04日
    浏览(52)
  • 软件测试人员必备的60个测试工具清单!_软件测试配置清单

    7、Gatling 前两种是比较常用的 4.C/S自动化工具 1,qtp (录制回放和脚本编辑),用到的是vb语言 2,winrunner IBM产品类似qtp 3,autoit 在窗口定位上做到很不错 5.白盒测试工具 1,jtest java语言的单元测试框架 2,JUnit 验证java的工具 3,cppunit 跨平台的c++单元测试框架 4,gtest 跨平台的

    2024年04月28日
    浏览(42)
  • 【软件测试】接口测试工具APIpost

    说实话,了解APIpost是因为,我的所有接口相关的文章下,都有该APIpost水军的评论,无非就是APIpost是中文版的postman,有多么多么好用,虽然咱也还不是什么啥网红,但是不知会一声就乱在评论区打广告,实在气愤,一律删帖。 但是,看的多了,也就有了装一下看看的冲动了

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包