接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围;除此之外,系统中往往存在一些有唯一性校验的接口,不允许重复录入关键字段(eg: 用户名,身份证…),针对这些有唯一性校验的接口,需要在每次运行时动态输入不同的数据。

为了解决上述问题,Jmeter提供了一些参数化的工具,最常用的有RandomString函数,CSVRead函数以及CSVDataSetConfig

RandomString函数

Jmeter通过RandomString函数助手可动态生成字符串,它包括三个变量:

• Random string length:生成的String长度

• Chars to use for random string generation:用于生成String的字符集

• Name of variable in which to store the result (optional):可选,指定存储生成的String变量名,供后续接口调用。

通过RandomString可以生成任意长度的指定字符集的字符串,除了生成随机字符串,还可以基于RandomString拼接扩展特定格式的字符串。

比如有些系统会校验手机号前三位,即可通过RandomString生成后8位数字,然后拼接满足需求的前三位数字组合。

RandomString函数非常强大,几乎可以实现接口单个请求参数的所有参数化工作,但在实际应用中,有时候不同请求参数有一定的关联性,此时无法通过RandomString来解决多请求参数之间的关联性问题,需要引入CSV组件来解决。

CSVRead函数

CSVRead函数适用于一组关联请求参数的场合,比如要选择用户的收获地址,往往需要选择省->市->区,而省市区这三个请求参数之间有关联性,此时可以通过自定义一组满足关联性要求的数据,将其写入CSV文件,然后在Jmeter中通过CSV函数来读取CSV文件

Jmeter中通过函数助手可引入CSVRead函数的支持,它有两个参数

• CSV File to get Values from: 需要读取的CSV文件

• CSV文件列号:从0开始

CSVRead函数有一些局限性,CSVRead不可指定编码,跨系统调用时可能出现乱码;另外多次循环同一个请求时会重复读取第一行数据,只有当线程数设置为多个时,才会读取多行数据

CSV Data Set Config配置元件

CSV Data Set Config 是CSVRead函数的升级版组件,它可以配置更多选项来控制读取的过程

• Filename:CSV文件路径

• File Encoding:编码格式,中文系统下生成的CSV文件编码使用GBK (英文系统使用UTF-8)

• Variables Name:生成的变量名,通过顺序和Excel列数据对应,指定变量名以后DebugSampler中可查看变量值

• Delimiter:分割符,CSV默认的分割符是逗号,tab分割符用

• Allow quoted data: 是否允许双引号内的拆分,设置为Ture时,“a,b”,c 会被解析为3列数据,设置为False时,会被解析为2列数据,默认False

• Recycle on EOF:参数文件是否循环遍历,设置为False时,文件遍历完则终止提取,请求的参数值为EOF,默认True。无论是设置多线程,还是多次迭代,都会循环遍历CSV文件。

• Stop thread on EOF:参数值为EOF时,是否停止执行线程。当 Recycle on EOF 设置为 true 时,此项不起任何作用。当且仅当 Recycle on EOF? 为 false 时,此项配置才生效。默认为False

• Sharing mode:共享模式,All threads:参数文件对所有线程共享,包括同一测试计划中的不同线程组;Current thread group:只对当前线程组中的线程共享;Current thread:仅对当前线程获取

以上三个组件基本涵盖了接口自动化中参数化的绝大多数功能,对于更复杂的参数化需求,可通过编码方式实现脚本,并通过Jar包的方式引入脚本支持

作  者:Testfan Kitty

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

jmeter随机参数化不重复_接口测试参数化详解(Jmeter)相关推荐

  1. jmeter吞吐量图形显示_Jmeter系列(43)- 详解 Jmeter 图形化 HTML 压测报告之 Charts 模块...

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 Charts 介绍 包含了各种详细信息图表,比 GUI 模式的图表好看且易懂多了! 做性能测试,如何发现是否有性能瓶颈?必须从结果图表中找到鸭! ...

  2. 详解JMeter函数和变量

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  3. [3] JMeter -详解jmeter测试计划

    1 今日主题:详解jmeter测试计划 Test Plan (测试计划): 用来描述一个性能/接口测试脚本和场景设计,包含与本次测试所有相关的功能.也就是说,使用jmeter进行测试的所有内容都是于基 ...

  4. 接口测试参数化详解(Jmeter)

    简介 接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性.我们在测试过程中需要考虑不同的输入组合,来覆盖不同 ...

  5. 全网最细节的jmeter接口测试教程以及接口测试流程详解

    文章目录 一.Jmeter简介 二.Jmeter安装 三.设置Jmeter语言为中文环境 四.Jmeter主要元件 五.Jmeter元件的作用域和执行顺序 六.Jmeter进行接口测试流程 七.Jme ...

  6. jmeter接口测试教程以及接口测试流程详解

    一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实现分 ...

  7. 性能测试之JMeter接口关联【JSON提取器】详解

    1.JSON提取器介绍 相信做过自动化测试的朋友经常会遇到这样的场景:我想调用系统中的某个业务接口,但是需要先登录系统.也就是现在很多接口的访问,都是需要登录接口的token做为基础. 在JMeter ...

  8. 读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行

    原子性: 单独的,不可分割的操作 不要使用过期状态值来决策当下的状态, 一定要先检查再执行(不检查, 将引发数据修改,丢失) 避免延迟初始化(懒加载: 先查看对象 == null, 然后new), 有 ...

  9. 用pcl读ply文件_一分钟详解PCL中点云配准技术

    原文首发于微信公众号「3D视觉工坊」:一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更 ...

最新文章

  1. Yii2 使用 Joins 查询
  2. 如何用python制作动态二维码,提升表白成功率?
  3. 第二周课堂小结以及习题思考
  4. 前端发给后台的参数中含有中文
  5. 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
  6. XMPP基本概念--节(stanza)
  7. 应用虚拟化之规划篇二 项目流程规划
  8. 信息的哲学--从信息到数据存储,再到数据保护
  9. 文本编辑器-Sublime Text 安装汉化搭建C/C++环境教程
  10. ACM-水题 Demacia of the Ancients
  11. Android Studio 报错:Incompatible types
  12. Swift实战-豆瓣电台(三)获取网络数据
  13. 插入数据时出现Duplicate entry ‘XXX‘ for key ‘XXX‘
  14. Android期末总结
  15. 三款telegram中群搜索机器人推荐
  16. 重启计算机请等待当前程序完成卸载,Win7卸载软件提示“请等待当前程序完成卸载或更改”三种解决方法...
  17. 搭建一个游戏平台运营团队都需要什么?
  18. 线上会议精彩回顾 - Cloudera Sessions China 2021
  19. 爱快IPv6设置简易教程
  20. XMeter Cloud 专业版亮点抢先看

热门文章

  1. TThread深入分析
  2. 优秀编程团队需要改善的12件事情
  3. 第九章构造数据类型实验
  4. element-ui + vue + node.js 与 服务器 Python 应用的跨域问题
  5. 20、Basic Shell_for_while_grep_find
  6. 「CTSC2018」假面
  7. TabControl控件和TabPage
  8. leetcode算法题--最大整除子集
  9. df、du、fdisk、lsblk区别
  10. CTF web题总结--SSRF