精华内容
下载资源
问答
  • 用户自定义变量中定义所有参数的值在测试计划执行过程中不能发生取值改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如应用tid和vid。取样器中tid和vid用${...

    一、用户定义的变量

    1、右键快捷菜单中选择添加-配置元件-用户自定义变量。

    用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如应用的tid和vid。

    025204d8b878fba8bfb2afe53b0d6d25.png

    取样器中的tid和vid用${tid}和${vid}代替,即使被测应用的部署服务器发生了变化,只需要简单地修改tid和vid参数的取值即可。

    2、在测试计划下方也有用户定义变量,使用方法同上。

    e9bfc6ce20127d004a61714e9da4e1c7.png

    二、用户参数

    右键快捷菜单中选择添加-前置处理器-用户参数

    与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。

    39c5038ef6577362968735001dd7ff8c.png

    如图,username和password分别有两组不同的取值。通过界面右下方的四个按钮,可以向列表中增加参数,增加参数值,删除参数和删除参数值。

    “每次迭代更新一次”选项控制参数取值的变化规则,如果选中该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个值。如果取消该选项,则参数值在每个在其作用域内的sampler发出请求时取下一个可用值。

    如果参数的取值范围很小,使用用户参数比较合适;如果参数的取值范围很大,建议使用csvdatasetconfig方法。

    三、函数助手

    1、CSV函数助手

    点击菜单栏“选项”---->函数助手对话框,看下图:CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。

    55f006c12abc1298ae632d94c51c9d14.png

    复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以啦。

    7379b3127a82da26cee739c1242db88e.png

    2、Random

    选项--函数助手对话框,列出了系统函数的使用方法,生成后,参数传入直接使用即可。

    e179144c5ad5119c5d5ddc674eb52694.png

    3、下面介绍一下常用系统函数:

    1.time获取当前时间

    第一个参数为时间格式,第二个参数为存放获得当前时间值的参数名称,例在第一个参数输入yyyy-MM-ddHH:mm:ss,单击生成即可得到正确的函数表达式。

    2.Random随机数

    3.StringFromFile从本地csv文件中读取记录存入参数

    与CSVDataSetConfig相比,该函数的强大之处是它可以支持从多个文件中读取数据。第一个参数是文件名(使用绝对路径),第二个参数是存放取得数据的参数列表,第三个和第四个参数分别为数据文件的起始和终止顺序号。

    四、CSVDataSetConfig配置元件

    右键快捷菜单添加-配置元件-CSVDataSetConfig

    da3f4d01935ac13aab5303483cdfb192.png

    Filename:获取参数值的文本文件(数据池)。文件名既可以使用绝对路径,也可以使用相对路径。当使用相对路径时,jmeter会在当前测试计划所在路径下寻找该文件。

    FileEncoding:文件编码方式,默认为ANSI.如果文本文件是以其他方式保存的,则请使用相应的编码方式(如utf-8)。

    VariableNames:从文本文件中获取内容的参数列表。参数列表中可以包含多个参数,用逗号分隔。

    Delimiter:文本文件中分隔记录域的分隔符,“”表示tab键。

    Allowquoteddata:当该项值是False时,CSVDataSetConfig原封不动地将文本文件中相应域的值取为参数值;当为Trues时,将处理文本中用双引号引用的部分,把双引号中的内容取为参数值。除非是CSV文件中的某个域的值包含有设定的分隔符,否则该项设置为False即可。

    a3635afaeab44fbabfb0c7b8916d99f9.png

    RecycleonEOF:当该项取值为True时,允许循环取值。当文件中的全部记录被取完后,重新从文件的第一行取值。为False时,根据stopthreadonEOF的取值决定测试计划的执行行为。

    StopthreadonEOF:当RecycleonEOF为true时,无论该项取何值,测试计划的执行行为相同;当RecycleonEOF为False时,该项值为True时,文件记录取完后,线程停止运行,如果该项取值为False,则线程后续执行时给定参数的取值为(EOF)。

    Sharingmode:

    Allthreads,该测试计划的所有线程共享csv文件中的记录(所有线程按照顺序取文件中的记录)。

    Currentthreadgroup,该测试计划中的每个threadgroup中的所有线程共享csv文件中的记录。

    Currentthread,每个线程各自独立使用csv的记录。

    以下在参数内直接使用即可:

    五、JMeter的属性

    以命令行方式运行测试计划时,用户可指定从命令行输入的值替换测试计划中的某些值。例如:以命令行指定线程组的线程数和运行时长。

    09e24495a938623bbae6a23056b17ee7.png

    property函数具有3个参数,分别为属性名称、存放属性值的变量名称(可选),属性默认值(可选)。

    命令行:

    Jmeter–n–ttest.jmx–Jthreadcount=10–Jduration=60

    -J表示设置property的值,以上命令行表示:10个线程运行,运行时间为60秒。

    六、正则提取需要用上个请求返回的参数内容

    1、首先添加后置处理器,正则表达式提取器,可使用DebugPostcessor查看请求参数结果。

    a06a84d9c3a2d96af3312fca76eba525.png

    2、在下个请求中将引用名称带入即可。

    97794630f9cd68d2ce22d0c936b6dd99.png

    七、需要使用上个线程的返回的参数内容

    1、首先在线程组1中使用setProperty函数设置jmeter属性值(此值为全局变量值),将所需变量值如${oldtoken}设置为jmeter属性值,即newtoken,示例:

    5e13d82bc9761663eba8b8fa1a3d9f7f.png
    Stringoldtoken=bsh.args[0];{__setProperty(newtoken,{oldtoken},)}

    2.在线程组2中使用_p函数来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。

    在参数或者url中直接调用该属性即可,方法:${__P(newtoken,)}

    0cabd5ee355094f34112bb8759ccf37d.png

    八、参数需要base64加密

    1、首先添加后置处理器,BeanShellPreProcessor,可使用DebugPostcessor查看请求参数结果。

    1becf97d70be14f3b299083d8f4a2989.png

    2、脚本区域:

    importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;Stringcursor64=bsh.args[0];StringqueryId64=bsh.args[1];BASE64Encoderencode=newBASE64Encoder();Stringcursorbase64=encode.encode(cursor64.getBytes());System.out.println(cursorbase64);vars.put("cursor64",cursorbase64);vars.put("queryId64",querybase64);

    3、在请求中直接使用put的参数即可。

    0e695eaede630be82e4acf5c3b8f648b.png

    九、参数AES等加密——BeanShell

    写好代码打成jar包,把jar包放到jmeter目录apache-jmeter-2.13libext下,在jmeter某个sampler下添加一个BeanShellPreProcessor,在beanshellPreProcessor中导入我们的jar包,调用里面的加、解密码方法,把结果保存在jmeter变量中,下面两个方法是beanshell中我们最常用到的:

    • ·vars.get(StringparamStr):获得变量值
    • ·vars.put(Stringkey,Stringvalue):,将数据存到jmeter变量中
    • importcom.pingan.ff.account.user.utils.*;
    • //加密
    • System.out.println("*****加密*****");
    • Stringpassword="123123";
    • Stringencode=SecurityUtils.getKey(password);//调用工具类中的方法进行加密
    • System.out.println("Setmyencode");
    • vars.put("encode",encode);//把值保存到jmeter变量encode中
    • StringgetEncode=vars.get("encode");
    • System.out.println("Getmyencode:"+getEncode);
    72dbeff9a30cb221ef45d3c2d02bb68b.png

    把加密后的密码存到jmeter变量中,然后在httpsampler中就可以通过${encode}进行使用了:

    b10d5178cf2d5519ae878df49e9ed213.png
    展开全文
  • 用户自定义变量中定义所有参数的值在测试计划执行过程中不能发生取值改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如应用tid和vid。取样器中tid和vid用${...

    一、用户定义的变量

    1、右键快捷菜单中选择添加-配置元件-用户自定义变量。

    用户自定义变量中的定义的所有参数的值在测试计划的执行过程中不能发生取值的改变,因此一般仅将测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如应用的tid和vid。

    dd2462528bb6593bd8988f880c7e3730.png

    取样器中的tid和vid用${tid}和${vid}代替,即使被测应用的部署服务器发生了变化,只需要简单地修改tid和vid参数的取值即可。

    2、在测试计划下方也有用户定义变量,使用方法同上。

    2b1f1ac93bffd3447d30de45fcd25469.png

    二、用户参数

    右键快捷菜单中选择添加-前置处理器-用户参数

    与用户自定义变量不同的是,用户参数列表中的参数取值可以在测试计划执行过程中发生变化。

    cc73c5f6d037929f420f9a2e01bd6f2b.png

    如图,username和password分别有两组不同的取值。通过界面右下方的四个按钮,可以向列表中增加参数,增加参数值,删除参数和删除参数值。

    “每次迭代更新一次”选项控制参数取值的变化规则,如果选中该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个值。如果取消该选项,则参数值在每个在其作用域内的sampler发出请求时取下一个可用值。

    如果参数的取值范围很小,使用用户参数比较合适;如果参数的取值范围很大,建议使用csvdatasetconfig方法。

    三、函数助手

    1、CSV函数助手

    点击菜单栏“选项”---->函数助手对话框,看下图:CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。

    53a167006f874e53845cab74521439ca.png

    复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以啦。

    4c7e2688c597334521b849a0c1b894d5.png

    2、Random

    选项--函数助手对话框,列出了系统函数的使用方法,生成后,参数传入直接使用即可。

    46f2d43c4445cda8b7b44690b99ce16c.png

    3、下面介绍一下常用系统函数:

    1.time获取当前时间

    第一个参数为时间格式,第二个参数为存放获得当前时间值的参数名称,例在第一个参数输入yyyy-MM-ddHH:mm:ss,单击生成即可得到正确的函数表达式。

    2.Random随机数

    3.StringFromFile从本地csv文件中读取记录存入参数

    与CSVDataSetConfig相比,该函数的强大之处是它可以支持从多个文件中读取数据。第一个参数是文件名(使用绝对路径),第二个参数是存放取得数据的参数列表,第三个和第四个参数分别为数据文件的起始和终止顺序号。

    四、CSVDataSetConfig配置元件

    右键快捷菜单添加-配置元件-CSVDataSetConfig

    59de2b2ca6e2f591eddb25f0baac64a0.png

    Filename:获取参数值的文本文件(数据池)。文件名既可以使用绝对路径,也可以使用相对路径。当使用相对路径时,jmeter会在当前测试计划所在路径下寻找该文件。

    FileEncoding:文件编码方式,默认为ANSI.如果文本文件是以其他方式保存的,则请使用相应的编码方式(如utf-8)。

    VariableNames:从文本文件中获取内容的参数列表。参数列表中可以包含多个参数,用逗号分隔。

    Delimiter:文本文件中分隔记录域的分隔符,“”表示tab键。

    Allowquoteddata:当该项值是False时,CSVDataSetConfig原封不动地将文本文件中相应域的值取为参数值;当为Trues时,将处理文本中用双引号引用的部分,把双引号中的内容取为参数值。除非是CSV文件中的某个域的值包含有设定的分隔符,否则该项设置为False即可。

    c07c3d87b0dc14a32136313f64abdeaa.png

    RecycleonEOF:当该项取值为True时,允许循环取值。当文件中的全部记录被取完后,重新从文件的第一行取值。为False时,根据stopthreadonEOF的取值决定测试计划的执行行为。

    StopthreadonEOF:当RecycleonEOF为true时,无论该项取何值,测试计划的执行行为相同;当RecycleonEOF为False时,该项值为True时,文件记录取完后,线程停止运行,如果该项取值为False,则线程后续执行时给定参数的取值为(EOF)。

    Sharingmode:

    Allthreads,该测试计划的所有线程共享csv文件中的记录(所有线程按照顺序取文件中的记录)。

    Currentthreadgroup,该测试计划中的每个threadgroup中的所有线程共享csv文件中的记录。

    Currentthread,每个线程各自独立使用csv的记录。

    以下在参数内直接使用即可:

    五、JMeter的属性

    以命令行方式运行测试计划时,用户可指定从命令行输入的值替换测试计划中的某些值。例如:以命令行指定线程组的线程数和运行时长。

    2bca435982c62c68e0018ad7570f34fc.png

    property函数具有3个参数,分别为属性名称、存放属性值的变量名称(可选),属性默认值(可选)。

    命令行:

    Jmeter–n–ttest.jmx–Jthreadcount=10–Jduration=60

    -J表示设置property的值,以上命令行表示:10个线程运行,运行时间为60秒。

    六、正则提取需要用上个请求返回的参数内容

    1、首先添加后置处理器,正则表达式提取器,可使用DebugPostcessor查看请求参数结果。

    a71b3a72200472c7e39af9e4a2579b99.png

    2、在下个请求中将引用名称带入即可。

    0c1c97347f18924f33d4a8fcfa3425e8.png

    七、需要使用上个线程的返回的参数内容

    1、首先在线程组1中使用setProperty函数设置jmeter属性值(此值为全局变量值),将所需变量值如${oldtoken}设置为jmeter属性值,即newtoken,示例:

    72e18542073d7a54ab70ecec36490b8a.png
    Stringoldtoken=bsh.args[0];{__setProperty(newtoken,{oldtoken},)}

    2.在线程组2中使用_p函数来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。

    在参数或者url中直接调用该属性即可,方法:${__P(newtoken,)}

    c2a2a2815b562dc34effa2c42cb99044.png

    八、参数需要base64加密

    1、首先添加后置处理器,BeanShellPreProcessor,可使用DebugPostcessor查看请求参数结果。

    29e942c153c3f53042c06e1a6eb8076a.png

    2、脚本区域:

    importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;Stringcursor64=bsh.args[0];StringqueryId64=bsh.args[1];BASE64Encoderencode=newBASE64Encoder();Stringcursorbase64=encode.encode(cursor64.getBytes());System.out.println(cursorbase64);vars.put("cursor64",cursorbase64);vars.put("queryId64",querybase64);

    3、在请求中直接使用put的参数即可。

    828b01fe1f1426808f99964809268896.png

    九、参数AES等加密——BeanShell

    写好代码打成jar包,把jar包放到jmeter目录apache-jmeter-2.13libext下,在jmeter某个sampler下添加一个BeanShellPreProcessor,在beanshellPreProcessor中导入我们的jar包,调用里面的加、解密码方法,把结果保存在jmeter变量中,下面两个方法是beanshell中我们最常用到的:

    • ·vars.get(StringparamStr):获得变量值
    • ·vars.put(Stringkey,Stringvalue):,将数据存到jmeter变量中
    • importcom.pingan.ff.account.user.utils.*;
    • //加密
    • System.out.println("*****加密*****");
    • Stringpassword="123123";
    • Stringencode=SecurityUtils.getKey(password);//调用工具类中的方法进行加密
    • System.out.println("Setmyencode");
    • vars.put("encode",encode);//把值保存到jmeter变量encode中
    • StringgetEncode=vars.get("encode");
    • System.out.println("Getmyencode:"+getEncode);
    cd396657085e9dd7897d28b349ec705b.png

    把加密后的密码存到jmeter变量中,然后在httpsampler中就可以通过${encode}进行使用了:

    7aae96831ae285151781601f0c431f1b.png
    展开全文
  • 主要介绍了Jmeter参数化实现方法及应用实例,文中通过示例代码介绍非常详细,对大家学习或者工作具有一定参考学习价值,需要朋友可以参考下
  • jmeter如何参数化?...接下来小编就给大家总结了Jmeter参数化设置5种方法,主要详细介绍是用Csv Data配置元件来进行参数化,对于Jmeter参数化设置不太了解到小伙伴一定要仔细看哦!!软件名称:a...

    jmeter如何参数化?我们使用jmeter在进行测试的时候,测试数据是一项重要的准备工作,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来读取测试数据。那么,你知道jmeter如何进行参数化吗?接下来小编就给大家总结了Jmeter参数化设置的5种方法,主要详细介绍的是用Csv Data配置元件来进行参数化,对于Jmeter参数化设置不太了解到的小伙伴一定要仔细看哦!!

    软件名称:apache jmeter v3.1 英文官方免费版软件大小:46.4MB更新时间:2019-06-17立即下载

    用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数。

    URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter参数”为url参数。

    请求中的参数,此处只能举例get请求,如:http://blog.da-fang.com/?category=Web,其中“category”是参数名,“Web”是它的值。

    对于post请求,用jmeter录制后,可以在请求的“同请求一起发送参数”和“同请求一起发送文件”中找到。

    参数化Jmeter脚本时,使用参数的地方书写格式为$

    对于URL“http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/”,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/index.php/$/填写在“路径”中。

    对于请求中的参数http://blog.da-fang.com/?category=Web,在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/填写在“路径”中;参数名称category填写在“同请求一起发送参数”的“名称”中,参数值$填写在对应的“值”中。

    Jmeter参数化设置的5种方法:

    1. 用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下:

    ${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。

    参看Jmeter函数的使用,通过菜单“选项”->“函数助手对话框”,即可在“函数助手”弹出框上找到Jmeter的函数。

    其中${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始);${__StringFromFile(,,,)}方法中第一个参数是文件名,${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数,所以${__StringFromFile(,,,)}只能读取包含一列的文件。

    2.用户定义的变量

    2.1 添加“配置元件”->“用户定义的变量”

    2.2 “名称”中输入变量名称,此处以登录为例,定义两个变量username和password。“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。

    当参数值是某个前缀加一个数字时,可以用前缀名加${__Random(,,)}或$的方法设置参数值。如进行登录测试之前,先准备了用户名为perf_0到perf_1000的用户,那么用户名就可以设为perf_{__Random(0,1000,)}。

    当参数值没有规律的且量不太大时,可以通过${__CSVRead(,)},${__StringFromFile(,,,)}从文件中读取,如将用户名和密码保存在user.csv文件中,user.csv的内容如下:

    oriana,123456

    admin,admin

    dandan,123456

    因为user.csv文件中有两列数据,所以只能用${__CSVRead(,)}函数,username参数后的值设为${__CSVRead(user.csv,0)},password参数后的值设为${__CSVRead(user.csv,1)}。

    3. 从csv文件中读取(用Csv Data配置元件来进行参数化)

    当参数的值没有规律且量不太大时,可以用这种方法。

    具体做法如下:

    1、打开jmeter图形界面工具,打开之前的脚本。

    2、右键【添加】-【配置元件】-【Csv Data Set Config】

    3、这个配置元件可以允许从你输入的路径来读取文件,然后根据分隔符获取到数据。

    4、如下图,输入的数据。

    讲解:

    a,名称和注释不需要过多解释,自己定义。

    b,Filename:参数化文件的读取位置。这个路径可以是绝对路径也是可以相对路径。在分布式测试中,还是利用相对路径比较方便,因为有的机器可能安装路径不一样。

    c,File Encoding:编码格式,选择utf-8

    d,Variable Names:变量名称。这里定义的变量名称,后面就可以直接用来引用了。(多个变量名称以逗号隔开。例如username,passwd。参数化文件中同样有对应的两列数据。)

    e,Ignore first line:忽略第一行数据。(类似loadrunner中第一行数据是变量名称,如果你的配置文件中为了记忆第一行也是变量名,可以选择是忽略这行数据)

    f,Delimiter:分隔符,默认逗号。

    g,Allow quoted data:是非选项,是否允许变量中间有分隔符,这里最好先默认false,数据中间最好不要有分隔符。

    h,Recycle on EOF和Stop thread on EOF按需设置。是否循环,到结尾是否停止测试。我这里设置了True和False

    i,Sharing mode:先选择所有的线程都可以利用此参数化。

    5、准备测试数据。这里只是简单的写了几个数据来演示效果。

    6、在请求中引用该变量。

    引用方法是 ${}   ;其中{}内写入参数化中的变量。

    注:在parameter中加入一些多余的参数没有问题,故在访问百度的请求后面随意加了一个参数。

    7、修改循环次数。这里设置6次,是因为参数里面有5个数据,测试一下数据取完之后的效果。

    8、点击运行,查看结果树。

    可以看到共发送了6次请求,而且请求参数中已经获取了变量的数据。

    9、打开第二个请求。可以看到第二个请求的参数里面变量值为data-b。

    顺序读取的。

    10、找到最后一个请求,点开查看。

    请求参数中searchid是data-a,说明数据是从头开始取的,也就是数据是遍历后循环的。

    参数化完成了。

    4.从数据库中获取

    当参数的值没有规律且量比较大时,可以选用这种方法。

    具体做法如下:

    4.1 下载MySQL JDBC “http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”

    4.2 解压下载的zip包后,将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下

    4.3 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:

    Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink

    JDBC Driver class:com.mysql.jdbc.Driver

    username:连接数据库的用户名(如root)

    password:连接数据库的密码

    4.4 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:

    SELECT CONCAT (“[",

    GROUP_CONCAT(

    CONCAT("{username:'",login,"'"),

    CONCAT("{password:'",password),"'}"),"]“) AS json FROM users

    4.5 在4.4中的JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取3.4中的用户名和密码为例设置正则表达式提取器的参数:

    引用名称:user

    正则表达式:username:’(.+?)’\{password:’(.+?)’

    模板:$1$$2$

    使用时,user_g1即为用户名,user_g2即为对应用户名的密码;更多正则表达式提取方法参见Jmeter正则表达式提取器

    5.用正则表达式从前面请求的响应数据中提取,具体操作见Jmeter正则表达式提取器

    教程结束,以上就是关于jmeter如何参数化?Jmeter参数化设置的5种方法步骤,希望对大家有所帮助!更多jmeter相关教程,请继续关注脚本之家网站。

    相关教程推荐:

    展开全文
  • jmeter参数化方法

    2017-09-21 15:52:26
    JMeter使用过程中,有些测试数据需要随着测试环境变化相应进行调整,这时最好将这样数据作为参数传入。
  • Jmeter参数化方法

    2020-07-20 15:11:43
    原创 平底锅 & 谢老师 金阳光测试 2018-01-29 ...简单介绍一下jmeter中常用的参数化方法: 1.用户自定义变量 (1)Testplan->Thread Group->Config Element中添加User Defined Variables,如下图: (2

    原创 平底锅 & 谢老师 金阳光测试 2018-01-29
    原文章地址
    在做接口测试或性能测试中,参数化是常用的一种测试技巧,本质就是使用动态的数据替换固定的数据。参数化思想就是数据驱动,使得脚本业务逻辑和外部数据分开,脚本数据通过变量与外部数据对应,保证脚本的健壮性。简单介绍一下jmeter中常用的参数化方法:

    1.用户自定义变量
    (1)Testplan->Thread Group->Config Element中添加User Defined Variables,如下图:
    在这里插入图片描述

    (2)在用户自定义变量中定义url、port、encoding,是为了后续在多个http request中不重复书写,防止因为手误导致脚本不通过。话不多说,上图。
    在这里插入图片描述

    (3)执行一下,说明参数化成功了。
    在这里插入图片描述

    2.CSV Data Set Config
    (1) Test Plan 或Thread Group添加CSV Data Set Config。
    (2)准备数据文件,以 .csv结尾的文件,数据之间的分隔符可用逗号,或者tab。在界面中定义数据变量名,如果用tab 键分隔数据,则Delimiter输入框输入:\t,如果数据以逗号分隔,则例如Delimiter输入框输入:,
    在这里插入图片描述

    (3)参数的引用
    设置循环次数为3,在请求中设置参数。
    在这里插入图片描述

    csv数据参数化执行情况上图:
    在这里插入图片描述

    1. CSV键值对
      (1)此功能需要插件jmeter-plugins-csvars-0.1.jar。此种方式为数据文件中定义变量名与变量值。
      在这里插入图片描述

    (2)在界面中配置好csv文件路径,请求中正确书写变量名,执行结果上图。
    在这里插入图片描述

    4.counter计数器
    在接口测试时,如何保证数据的唯一性,可以使用counter计数器。
    (1)Test Plan->Config Element-> Counter。
    在这里插入图片描述

    (2)请求中引用变量counter。
    在这里插入图片描述

    (3)在线程组中设置2个VU循环5次,查看结果树中counter值。
    在这里插入图片描述

    1. 数据抽取变量
      业务工作流中常常是前面报文返回的结果中某一变量作为后面请求的参数,也就是常说的参数关联,这就使用到Jmeter的后置处理器post processor,介绍2种常用数据抽取方法,XML报文抽取和JSON报文抽取。
      5.1 XML报文抽取
      (1)使用Dummy sampler模拟返回XML报文。
      在这里插入图片描述

    (2)Dummy sampler->post processor->XPath Extractor
    在这里插入图片描述

    (3)在下一请求中使用变量year,并在结果树中查看。
    在这里插入图片描述

    5.2 Json报文抽取
    (1) 使用Dummy sampler模拟返回JSON报文。
    在这里插入图片描述

    (2)Dummy sampler->post processor-> JSON Extractor
    在这里插入图片描述

    (3) 在下一请求中使用变量title,并在结果树中查看。
    在这里插入图片描述

    【注意事项】
    Csv文件中参数化是一定要把参数名差异化,如果不小心参数名相同,那Jmeter只取变量名的最后一个参数值。
    在这里插入图片描述

    展开全文
  • jmeter参数化的四种方法
  • Jmeter参数化的4种方法

    2019-09-29 23:05:21
    Jmeter参数化的4种方法 用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数。URL中的参数,如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter...
  • JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现。参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同用户名和密码同时登录,或者想更好模拟多个用户来登录系统。这个...
  • 今天脚本之家小编就给大家分享Jmeter参数化设置的5种方法。jmeter如何参数化?我们使用jmeter在进行测试的时候,测试数据是一项重要的准备工作,每次迭代的数据当不一样的时候,需要进行参数化,从参数化的文件中来...
  • jmeter参数化4种方法

    2012-04-09 10:14:56
    对于使用jmeter的人,来说,本文档详细介绍了,Jmeter参数化的4种方法
  • jmeter 参数化方法

    2015-12-29 14:48:43
    设置参数的方法有如下几种: 1. 用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下: ${__Random(,,)},${__threadNum},${__CSVRead(,)},${__...
  • jmeter参数化

    2019-03-10 20:23:12
    本文主要讲述jmeter参数化的三种方法:从文件中读取数据、用户变量、函数读取数据,并通过举例来具体说明各方法的使用方式,简单直接
  • JMeter参数化方法

    2016-11-25 17:38:06
    JMeter使用过程中,有些测试数据需要随着测试环境变化相应进行调整,这时最好将这样数据作为参数传入。有以下几种办法。 1. 配置properties参数 a. 在bin目录下新建自定义properties文件,文件后缀为....
  • jmeter参数化的3种方法: 第一种方法: 第一步:在http请求中添加【用户参数】 第二步:点击添加变量 第三步:回到http请求页面,添加变量值 第二种方法: 第一步:新建一个文件,txt或excer文件都可以...
  • JMeterJMeter 参数化的四种方法

    千次阅读 2019-01-05 09:59:19
    简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则; 这样,脚本在运行时就可以根据需要选取不同的参数值作为输入。这种方式通常被称为数据驱动测试(Data ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 540
精华内容 216
关键字:

jmeter参数化的方法