简介

接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围;除此之外,系统中往往存在一些有唯一性校验的接口,不允许重复录入关键字段(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)的更多相关文章

  1. 接口测试断言详解(Jmeter)

    接口测试是目前最主流的自动化测试手段,它向服务器发送请求,接收和解析响应结果,通过验证响应报文是否满足需求规约来验证系统逻辑正确性.接口的响应类型通过Content-Type指定,常见的响应类型有: ...

  2. LoadRunner参数化详解

    LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又 ...

  3. 详解JMeter正则表达式

    详解JMeter正则表达式(1) 1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pat ...

  4. 详解JMeter函数和变量(转载)

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

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

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

  6. 基于python的直播间接口测试实战 详解结合项目

    基于python的直播间接口测试详解 一.基本用例内容描述 以设置白名单 /advisor/setUserWhiteList.do接口为例,该方法为POST at first,先要导入一些常用到的模块 ...

  7. Jmeter接口测试流程详解(中科软测认证中心)

    1.jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以: Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同 ...

  8. jmeter接口测试json详解

    本篇围绕jmeter(压力测试工具),请求json与返回json串处理进行解析,初入测试,理解如有不对的地方请大家及时提点~~ 在这里jmeter工具的使用不在做解释 首先说下乱码问题,在这里无脑5步 ...

  9. LoadRunner参数化详解(转)

    距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己 ...

随机推荐

  1. Viola-Jones(人脸检测)

    Viola-Jones 人脸检测 1.Haar特征抽取 ‘ 2. Adaboost 算法

  2. Android WebView使用与JavaScript使用

    WebView基本使用 WebView是View的一个子类,可以让你在activity中显示网页. 可以在布局文件中写入WebView:比如下面这个写了一个填满整个屏幕的WebView: <?x ...

  3. leetcode 118. Pascal's Triangle 、119. Pascal's Triangle II 、120. Triangle

    118. Pascal's Triangle 第一种解法:比较麻烦 https://leetcode.com/problems/pascals-triangle/discuss/166279/cpp- ...

  4. android 给控件使用自定义字体Typeface

    第一步:将字体资源放在assets 资源文件夹下: 第二步:获取字体资源 Typeface mTf = Typeface.createFromAsset(c.getAssets(), "Op ...

  5. React事件方法、React定义方法的几种方式、获取数据、改变数据、执行方法传值

    1.案例实现代码如下 import React, { Component } from 'react'; /** * 特别注意this,对于传值和绑定都十分重要 */ class Home4 exte ...

  6. Redis 入门 3.3 散列类型

    3.3.1 介绍   散列类型(hash)的键值也是一种字典结构,其储存了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列类型不能嵌套其他的数据类型.一个散列 ...

  7. 【ABAP系列】SAP ABAP 动态指针

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 动态指针   ...

  8. Python基础语法之文件操作

    1 读文件 1.1 简单读文件 f = open('text', 'r') # f是文件句柄 data = f.read() # read方法可以加整型参数,是几就读几个字符 print(data) ...

  9. Pytorch实现Top1准确率和Top5准确率

    之前一直不清楚Top1和Top5是什么,其实搞清楚了很简单,就是两种衡量指标,其中,Top1就是普通的Accuracy,Top5比Top1衡量标准更“严格”, 具体来讲,比如一共需要分10类,每次分类 ...

  10. AGC037 C Numbers on a Circle【思维】

    题目传送门 题意 这道题被某大佬改编拿来出成考试题,是长这个样子的: 好的,其实这才是真正的题意: 给定初始序列和最终序列,每次选择一个数变成自己和相邻2个数的和.问初始序列是否可以变为最终序列,若可 ...