• Jmeter -- 参数化(函数助手和CSV数据文件配置)


    使用场景:

    例如:模拟多用户登陆时

    参数化两种方式:

    方式一:使用函数助手

    1. 创建包含多个登录名和密码的文件

    可以在文本编辑器中输入,格式如下:

    username,password
    username2,password2
    username3 , password3

    注意中间以逗号分隔,保存后缀名为csv(dat,txt后缀均可)

    2. 顶部标题栏选择options-->function helper dialog 打开函数助手对话框

     3. 将第二步生成的函数填写到入参位置

    4. OK,可以执行啦

    执行时会自动调用配置的文件中的对应列内容

    方式二:使用配置元件

    1. 创建包含多个登录名和密码的文件(同方式一)

        注意文件编码方式

    2. 新建CSV配置元件 Add-->Config Element-->CSV Data Set Config

    3. 填写CSV配置元件参数

    参数说明:

    1) filename: 文件名,指保存信息的文件目录,可以相对或者绝对路径(当csv文件在bin目录下时,只需给出文件名即可)
    2) file encoding: 文件编码
    3) variable names(comma-delimited): 参数名称(多个名称之间用逗号隔开)
    4) ignore first line(only used if variable names is not empty): false代表全部文件内容都有效, true代表忽略第一行,从第二行开始读取
    5) delimiter(user ' ' for tab): 分隔符(一般用逗号即可)
    6) allow quoted data: True设置文件中的参数值都必须用"引号"引起来,False则不需要

    7) recycle on EOF: 到了文件尾,是否从头开始循环读入。(每次读取一行,每次读取的参数仅供一个线程使用,如果线程数超过文本的记录行数,那么可以选择true(从头再次读取))
    8) stop thread on EOF: 到了文件尾,是否停止线程

    recycle on EOF和stop thread on EOF的区别:
    a. 当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
    b. 当Recycle on EOF 选择flase时,Stop thread on EOF选择true:线程4个,参数3个,那么只会请求3次
    c. 当Recycle on EOF 选择flase时,Stop thread on EOF选择flase:线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误

    9) sharing mode: 设置线程共享
    a. all threads 所有线程:测试计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行
    b. current thread group 当前线程组:假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取值情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行
    c. current thread 当前线程:假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行

    ps: 简单起见,一个jmx文件里,只一个测试计划,一个线程组,按上图配置,修改文件名和列名即可
          配置时,注意线程数和配置文件的行数(一般写成一致的)

    4. OK,可以执行啦

    PS:recycle on EOF和stop thread on EOF设置,执行结果也可以从日志中分析

          例如:线程数为8,CSV文件中只有4条记录。recycle on EOF为false,stop thread on EOF为true(即不循环,到文件尾就结束)

    执行日志如下:

    日志: Stop Thread seen for thread 登陆参数化-config element 1-5, reason: org.apache.jorphan.util.JMeterStopThreadException: End of file:C:/Users/Administrator/Desktop/000.txt detected for CSV DataSet:CSV Data Set Config configured with stopThread:true, recycle:false

     从日志可见,线程1-4分别读取文件的第1-4行,线程5-8未执行

  • 相关阅读:
    Windows-快速预览文件-QuickLook
    Chrome简洁高效管理下载项
    有Bug?你的代码神兽选对了吗
    保护视力-刻不容缓
    一次看懂 Https 证书认证
    Web前端助手-功能丰富的Chrome插件
    Chrome自动格式化Json输出
    网络爬虫
    彻底搞懂Cookie,Session,Token三者的区别
    Redis内存满了的解决办法
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/11254213.html
Copyright © 2020-2023  润新知