Jmeter功能使用03-----参数化

下载并且安装好jmeter配置好环境变量
windows系统双加bin目录下的jmeter.bat
打开图像化界面如下


Jmeter功能使用03-----参数化_第1张图片
image.png

下面主要是jmeter参数化以及通过beanshellsample调用外部的jar文件
jmeter参数化用Jmeter测试时包含两种情况的参数,一种是在url中,一种是请求中需要发送的参数
参数化Jmeter脚本时,使用参数的地方书写格式为${变量名};
参看Jmeter函数的使用,通过菜单“选项”->“函数助手对话框”,即可在“函数助手”弹出框上找到Jmeter的函数。
设置参数值的方法有如下几种:
1.用Jmeter中的函数获取参数值,__Random,__threadNum,__CSVRead,__StringFromFile,具体调用方法如下:
${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。
其中${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;


Jmeter功能使用03-----参数化_第2张图片
image.png

Jmeter功能使用03-----参数化_第3张图片
image.png
Jmeter功能使用03-----参数化_第4张图片
image.png

Jmeter功能使用03-----参数化_第5张图片
image.png

${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始);


Jmeter功能使用03-----参数化_第6张图片
image.png

Jmeter功能使用03-----参数化_第7张图片
image.png

Jmeter功能使用03-----参数化_第8张图片
image.png

jmeter中,StringFromFile这个函数是从一个文件中取到一个字符串,用来实现参数化使得在Jmeter运行时参数化了的参数在每个线程读取不同的内容。如果某个参数每次发送请求的时候不能重复才可以存储到数据库中,则用这个功能十分方便
${__StringFromFile(,,,)}方法中第一个参数是文件名,${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数,所以${__StringFromFile(,,,)}只能读取包含一列的文件。


Jmeter功能使用03-----参数化_第9张图片
image.png

Jmeter功能使用03-----参数化_第10张图片
image.png

Jmeter功能使用03-----参数化_第11张图片
image.png

Jmeter功能使用03-----参数化_第12张图片
image.png

StringFromFile使用前准备:
(1)首先需要一个文本文件,可以手工生成,也可以根据需要,通过编码,创造出满足条件的文本
参数说明:
第一个参数选择你存在本地的文件,使用决定路径
第二个参数写的是变量名字
第三个参数选择开始行数
第四个参数选择结束行数
Jmeter功能使用03-----参数化_第13张图片
image.png

(3)如果有多个文件的时候,依次读取每个文件。文件名E:\test#.txt
2若每一个接口所用的ip和端口都是一样的可以使用用户自定义变量对其进行参数化
image.png

Jmeter功能使用03-----参数化_第14张图片
image.png

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)}。

  1. 从csv文件中读取
    当参数的值没有规律且量不太大时,可以用这种方法。
    具体做法如下:
    3.1 创建一个csv文件,内容为参数的值集,每一个参数占一列,第一行就开始写参数值,不要写参数名
    3.2 在测试计划或线程组中添加一个“配置元件”->“CSV Data Set Config”
    3.3 Filename中填写步骤2.1中csv文件的完整路径(当csv文件在bin目录下时,只需给出文件名即可)
    3.4 Virable Names中填写变量名,如果csv文件中有多个变量,则用逗号隔开


    Jmeter功能使用03-----参数化_第15张图片
    image.png

    Jmeter功能使用03-----参数化_第16张图片
    image.png

    image.png

    实际应用到在前端的界面中一个个输入多次数据会比较耗时,影响工作效率,因此需要对输入的一个参数可能需要做多次的参数化但是希望一次性全部创建完成,比如我需要发布一个公告,希望一次性全部发布完,但是需要每次发布的内容都不一样,如果只是在前端一遍一遍录入的话会花费大把的时间和精力,通过接口将一个参数进行同时参数化多个数据就显得格外的有用


    Jmeter功能使用03-----参数化_第17张图片
    图片.png

    csv中将需要多次参数化不一样的参数没一次写一行你写多少行就让线程组循环多少次
    Jmeter功能使用03-----参数化_第18张图片
    图片.png

    Jmeter功能使用03-----参数化_第19张图片
    图片.png

    Jmeter功能使用03-----参数化_第20张图片
    图片.png

4、从数据库中获取
当参数的值没有规律且量比较大时,可以选用这种方法。
这里是在阿里的MySQL中进行操作
具体做法如下:
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/”

  1. 2、 解压下载的zip包后,将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下
    4.3 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:
    Database URL:
    JDBC Driver class:com.mysql.jdbc.Driver
    username:连接数据库的用户名(如root)
    password:连接数据库的密码


    Jmeter功能使用03-----参数化_第21张图片
    image.png
4.4 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:
     ![image.png](http://upload-images.jianshu.io/upload_images/5411450-aa7857213dd9911c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Jmeter功能使用03-----参数化_第22张图片
image.png

添加查看结果


Jmeter功能使用03-----参数化_第23张图片
image.png

你可能感兴趣的:(Jmeter功能使用03-----参数化)