Jmeter07.Jmeter参数化

2019-09-29  本文已影响0人  意爹闯天涯

在Jmeter性能测试中,要测试的数据往往不是固定值,若要求每次迭代的数据不一样时,则需进行参数化。在实际测试中会将准备好的数据自动填充到定义好的参数里。

用户参数

添加方式:添加-》前置处理器-》用户参数


添加用户参数

用户参数设置:
设置变量name和age,每个变量分别设置5个值。

注意:需要勾选每次迭代更新一次,否则会固定使用第一个值。

用户参数设置
当准备好数据后,就需要在相关的地方用变量来代替这些值。使用变量的方式为:${变量名}。添加一个HTTP请求取样器,在请求参数中将添加如下数据:
取样器设置

此处调用的接口实现了这样一个简单的功能:将传入的参数以json格式输出出来。该服务器接口通过flask实现,代码如下(不需要关注):

from flask import Flask, request

app = Flask(__name__)


@app.route('/data')
def get_data():
    name = request.args.get('name')
    age = request.args.get('age')
    return {
        'name': name,
        'age':age
    }

执行测试后,查看结果树:


响应数据

csv数据文件设置

Jmeter可以通过csv数据格式的文件来进行参数化。这里使用的文件并不要求必须是以csv为后缀的文件,只要文件符合csv数据格式就能够使用。

  1. 准备csv文件data.csv
    该文件存放可供测试的数据:
name,age
张三,18
李四,25
王五,78
  1. 启动Jmeter,添加测试计划、线程组,并在组下线程组下添加“CSV数据文件设置”元件。


    添加“CSV数据文件设置“元件
  2. 配置“CSV数据文件设置”元件
    添加“csv数据文件设置”元件后,需要对该元件进行设置,才能够使用。


    元件设置界面

    元件配置项:

文件名:要引用的csv格式的文件
文件编码:csv文件的文件编码
变量名称:csv文件的每列数据设置对应的变量名。如果不设置将默认使用第一行的数据作为变量名,读取数据时,会忽略首行。
忽略首行:是否忽略第一行数据,设置True则会从第二行开始读取数据。
分隔符:csv文件中多个变量之间的分隔符,默认逗号。
遇到文件结束符再次循环:文件读完重头开始读
遇到文件结束符停止线程:文件读完将线程停止。
线程共享模式:指csv文件里的数据是以怎样的方式共享的。

按照上图,添加csv文件,其它项采用默认配置。这样该文件的数据就被分配到nameage变量里。

  1. 添加HTTP请求取样器,并设置变量引用。


    HTTP请求取样器设置

    5.添加“查看结果树”元件用于查看请求。


    添加查看结果树
    6.执行测试,并查看结果树。
    响应数据

    通过上图可以看到csv文件中的数据,成功应用在HTTP请求的变量中。

__Random函数

通过函数助手的__Random函数也可以实现参数化。

  1. 通过函数助手,生成__Random表达式,该表达式主要用于生成随机数。


    image.png

    设置最大最小值后,点击“生成”按钮会生成一个表达式,将该表达式复制到需要用到随机数的地方。

  2. 在http请求中应用随机数


    随机数使用

    3.执行,查看结果树。


    响应信息
上一篇下一篇

猜你喜欢

热点阅读