zoukankan      html  css  js  c++  java
  • Jmeter参数化(_csvread函数、CSV Data Set Config)

    方法一、Jmeter自带的函数助手——_CSVRead函数

    1.数据准备:先在excel存储数据,保存格式选择csv格式。或在记事本存储数据,列之间用英文逗号分隔,保存为txt

    2.使用_csvread函数:选项-->函数助手对话框,打开函数助手弹窗,选择_csvread函数

    第一行:输入csv文件所在的路径,如F: est.csv。

    第二行:输入参数所在的列,列数是从0开始数的。如第一列是用户名对应的列号为0;第二列是密码对应的列号为1。

    点击生成被调用的函数:${__CSVRead(F: est.csv,0)},在参数对应的值处填入该值。

    方法二、CSV Data Set Config

    通过Test Plan或者Thread Group的Add->Config Element(配置元件)->CSV Data Set Config,设置变量名后通过${name}引用

    以下是CSV Data Set Config各个参数的简要说明:
    FileName:和脚本同路径只需写文件名,如果不是则填写全路径名称
    File Encoding: 编码方式,可以不填写,默认为ANSI。如果有中文,建议utf-8
    Varible Names: 定义文本文件中的参数名,参数之间逗号分隔,定义后可在脚本在以Shell变量的同样的方式引用。如给出变量名user,pass,通过变量名引用${name},${pwd}

    Delimiter(use ' ' for Tab):这个是用来隔开变量的分隔符,如上面的user,pass,那分隔符就是“,”。
    Allow Quoated data: 双引号相关,例:如果参数中需包含逗号","或者双引号",该项可以选择True
    Recycle on EOF: 设置为True后,允许循环取值
    Stop Thread on EOF: 当Recycle on EOF为false并且Stop Thread on EOF为true,则读完csv文件中的记录后,停止运行
    Sharing Mode: 设置是否线程共享。

    All threads:所有线程,所有线程循环取值,线程1取第一行,线程二取下一行。
    Current thread group:当前线程组,各个线程组分别循环取值。
    Current thread:当前线程,该测试计划内的所有线程都取第一行。

    方法三、用户定义的变量
    选中取样器,右键:添加-配置元件-用户定义的变量。在列表中填入名称和值,在别处就用${name}来引用

    方法四、正则表达式提取器获取
    在打开登录页的时候服务器有返回一个sid,获取到sid后,然后登录进入到首页;所以在这个请求下添加后置处理器:右键-添加-后置处理器-正则表达式提取器

    第1部分:名称+注释,可不修改,只是为了方便自己识别
    第2部分:apply to 默认即可
    第3部分:要检查的字段:主体等选择,一般我们选择主体,即服务器返回给我们的页面主体信息
    第4部分:
    【引用名称】:就是参数名称,在别处引用;如输入mysid,别处引用的时候使用${mysid}
    【正则表达式】:表达式中()内的内容就是要提取的。如sid/(.*?)",表示查找sid/字符串之后的内容,直到出现第一个"时结束;(注意括号里的表示提取的内容)
    【模板】:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$1$(表示只有一组数据),$2$等等,表示解析到的第1个、第2个值给mysid
    【匹配数字】:0代表随机取值,-1代表所有,1代表全部取值
    【缺省值】:如果参数没有取到值,则使用此处的缺省值
    注意:运行脚本后,在“察看结果树”监听器中,[响应数据]标签页先搜索sid出现的位置,及出现的规律,如出现的时候前面会有“sid/”字符串; 调试正则提取表达式的时候,可添加Debug Sampler来查看是否正确提取到对应的值(右键-添加-Sampler-Debug Sampler)

    方法五、从数据库获取
    1) 将其中的mysql-connector-java-5.1.34-bin.jar放到Jmeter的lib目录下
    2) 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:
    Variable Name:连接池名称
    Database URL:jdbc:mysql://host:port/db(jdbc:mysql://ip地址:端口号/数据库名称)
    JDBC Driver class:com.mysql.jdbc.Driver
    username:连接数据库的用户名(如root)
    password:连接数据库的密码


    3) 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:
    select concat(domain,'+',po_pwd) as userpass from domain;

    Variable Name:连接池名称
    注意:该值要和JDBC Connection Configuration中配置的Variable Name值对应,否则会提示:No pool found named: 'pool12', ensure Variable Name matches Variable Name of JDBC Connection Configuration;
    4) 在JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取用户名、密码为例,设置正则表达式提取器的参数:
      引用名称:userPass
      正则表达式:(.*)+(.*)
      模板:$1$$2$
      使用时,userPass_g1即为用户名,userPass_g2即为对应用户名的密码;
      
    注意:
    (1)+在正则表达式中是关键字,所以需要转义。
    (2)匹配数字,填0或不填,表示随机读取,如果填正整数,如1,则不同虚拟用户或循环固定读取某行数据。

  • 相关阅读:
    穷人不配拥有爱情
    配置 OSPF 的 DR 选择示例
    配置OSPF虚连接示例
    配置OSPF路由协议基本功能示例
    配置 RIP 与动态 BFD 联动特性示例(IPv4)
    配置 RIP 与单臂静态 BFD 联动特性示例(IPv4)
    配置 RIP 引入外部路由示例(IPv4)
    配置 RIP 基本功能示例(IPv4)
    可以继承和不可以继承的样式属性
    权重和权重的计算
  • 原文地址:https://www.cnblogs.com/lixy-88428977/p/9558823.html
Copyright © 2011-2022 走看看