zoukankan      html  css  js  c++  java
  • 学习笔记-JMeter参数化

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

    URL中的参数,如:http://www.cnblogs.com/fenggf/p/8601716,其中“fenggf/p/8601716”为url参数
    请求中的参数,如:key-value类型的请求,key 为参数名,value 为参数值。例如:https://i.cnblogs.com/posts?categoryid=1177604 中 categoryid 为参数,对应值为:1177604

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

    下面利用实例来介绍Jmeter参数化的三种方法:

    1、用户定义的变量

            这种方法常用来解决线程组中多个请求共用相同的数据。比如进行接口测试时,一个任务有100个接口,用的是相同的服务器名称或IP;一个个写Jmeter脚本,当切换环境时,如果每个http请求里面去修改,会是一件很繁琐,所以可以利用 用户定义的变量,把 服务器或IP 作为变量提前定义好

    (1)添加用户定义的变量(右击线程组-添加-配置元件-用户定义的变量)

    (2)添加变量内容,变量 名称 设为:host, 值 为:api.xxxx.cn(此处定义的是服务器名称或IP,则根据自己的测试项目的服务器名称或IP填写对应的值)

    (3)脚本中需要用到此变量(服务器名称或IP)的所有地方都可以引用这个变量名了,引用变量的格式为:${变量名}(此处则应为:${host}),以获取学生信息为例,Jmeter脚本如下:

    2、函数生成器

    • 用函数生成随机数:(__Random)

                 在Jmeter中点击  选项-函数助手对话框:

             

                 在弹出的对话框中选__Random,填写随机数的范围,点击生成按钮,就看到需要的字符串了,然后复制出来

             

                在请求中使用生成的随机数,把复制的字符串粘贴到请求的参数里,如: "name":"fengfeng${__Random(1,100,)}",请求后,name的值则会在fengfeng1-fengfeng100之间随机生成

            

                 运行脚本后,可查看到该请求发送的数据中, "name":"fengfeng56"

                 

    • 用函数生成当前时间:(__time)

              在Jmeter中点击  选项-函数助手对话框:

              在弹出的对话框中选__time,可以默认时间戳格式也可以自定义时间格式,就看到需要的字符串了,然后复制出来

              默认时间戳的格式:

               

               自定义年月日格式:

               

              在请求中使用生成的随机数,把复制的字符串粘贴到请求的参数里,如:"grade":"三年级${__time(yyMMddHHmmss,)}",,请求后,grade的值则会根据当前时间生成:三年级xxxxx

            

              运行脚本后,可查看到该请求发送的数据中

                 

    3、从文件中读取(CSV Data Set Config)

         (1) 以注册接口(user_reg)为例,在本地创建一个文件,添加6个username 和passwd的值,并对脚本设置6个线程或者循环6次,来对这6个用户进行注册

          

          

          (2)添加CSV Data Set Config(右击“线程组” - “添加” - “配置元件” - "CSV Data Set Config"),可对该线程组所有接口适用,比如 登录接口 需要用到username 和passwd,也可以引用,假如这些数据仅应用于“注册接口”接口的话,可以直接在“注册接口”接口下面创建"CSV Data Set Config",在线程组下建,则可适用于该线程组的所有接口

          

          (3)根据下图添加对应的,"Filename"选择填写本地准备的文件,如:D:username.txt, "Variable Names" 输入"username" 和"passwd", 以逗号隔开,为避免插入的数据乱码

                 

    •   File encoding:文件的编码格式,可以使用电脑自带的笔记本另存为时选择编码方式即可
    •   Variable Names(comma-delimited):参数名称(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,分隔符在下面的“Delimitet”中定义,为了和文件中的“,”对应,这里也用“,”分割每个参数名,引用方法:${username},${passwd}
    •   Delimitet:定义分隔符,这里定义某个分隔符,则在“Variable Names”用这里定义的分隔符分割参数。
    •   Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码 
    •   Recycle on EOF:是否循环读入,因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入

    (4)由于"CSV Data Set Config"中的变量名为username 和passwd,因此在注册接口的参数username,pwd,cpwd的值分别设为${username}, ${passwd}

  • 相关阅读:
    浅谈数据库设计技巧
    用Sqlhelper类简化数据访问示例
    SQL数据库对象命名详细文档
    C# 中SqlParameter类的使用方法小结
    DataGridView 列宽和行高自动调整的设定
    生成8位的不重复乱码
    DataGridView 冻结列或行
    用Sqlhelper类简化数据访问示例
    .Net中DataTable的保存
    LeapFTP 出现 “426 ”错误的解决方法
  • 原文地址:https://www.cnblogs.com/fenggf/p/8603565.html
Copyright © 2011-2022 走看看