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

Posted 自动化软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试参数化详解(Jmeter)相关的知识,希望对你有一定的参考价值。

接口测试参数化详解(Jmeter)
简介

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


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


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


接口测试参数化详解(Jmeter)
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变量名,供后续接口调用。


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


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

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


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


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


接口测试参数化详解(Jmeter)
CSVRead函数


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


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

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

CSV文件列号:从0开始


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


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


接口测试参数化详解(Jmeter)
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:仅对当前线程获取


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


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


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

Bye~



RECOMMEND


testfan一直致力于提高整个测试行业技术实力,近期特推出”大咖解题--公益提升计划“项目,帮助所有测试从业者走上高端测试之路!


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

点击文章底部的阅读原文,了解更多

扫上图加安然老师微信可解锁上期解题视频,暗号:“接口测试框架设计

以上是关于接口测试参数化详解(Jmeter)的主要内容,如果未能解决你的问题,请参考以下文章

JMeter接口测试 ~ 参数化

jmeter进行接口测试---参数化

用Jmeter参数化实现接口自动化测试

Jmeter接口测试系列之参数化方法

Jmeter接口测试参数化实例图文示例

Jmeter接口测试系列之测试用例变量参数化处理