• Jmeter工具使用总结


    Jmeter工具使用总结

    目录

    Jmeter函数总结

    第一章 前言

    第二章 常用函数的介绍

    2.1. timeShift函数

    2.2. time函数

    2.3. groovy函数

    第三章 常用用法

    3.1. Jmeter读取Excel

    1) 添加线程组

    2) 添加配置元件--》选择CSV Data Set Config

    3) 添加--》取样器--》选择BeanShell Sampler,使用vars.get方法获取Excel的值

    4) 添加--》取样器--》选择Debug Sampler,以便后面查看是否正常的获取了Excel中的数据

    5) 添加http请求,将Excel中获取的数据作为参数传递

    6) 添加一个查看结果树,以查看执行之后的结果

    7) 设置线程组

    8) 遇到问题

    3.2. Jmeter读取txt

    1) 添加线程组

    2) 添加配置元件--》选择CSV Data Set Config

    3) 添加--》取样器--》选择BeanShell Sampler,使用vars.get方法获取Excel的值

    4) 添加--》取样器--》选择Debug Sampler,以便后面查看是否正常的获取了Excel中的数据

    5) 添加http请求,将Excel中获取的数据作为参数传递

    6) 添加一个查看结果树,以查看执行之后的结果、

    7) 设置线程组

    第四章 常见问题

    4.1. Jmeter请求参数时,中文出现乱码

     

     

    第一章 前言

    近期工作过程中使用Jmeter函数较多,初步使用,遇到问题只能依赖度娘解决,近期抽时间将遇到的问题梳理了一下,并附上了解决方法,希望可以对大家有所帮助。

    第二章 常用函数的介绍

    2.1. timeShift函数

    背景:近期测试的一些业务的接口的传参需要传入与时间有关的一些数值

    (比如需要毫秒级别的时间戳,比如1660270555043,对应的时间2022-08-12 10:15:55 ),

    (再比如20220812101555848 对应的是2022-08-12 10:15:55),

    使用 timeShift函数可以构造最新时间和指定时间戳。

    示例:

    场景

    函数

    结果

    当前时间时间戳

    (毫秒级)

    ${__timeShift(,,,,)}

    1660270835790

    2小时前时间戳

    (毫秒级)

    ${__timeShift(,,-PT2H,,)}

    1660263761872

    指定格式,

    输出当前时间

    ${__timeShift(yyyyMMddHHmmssSSS,,,,)}

    20220812101555848

    指定格式,

    输出2小时前时间

    ${__timeShift(yyyyMMddHHmmssSSS,,-PT2H,,)}

    20220812101555848

    展开:

    点击[函数助手/Function Helper]系统弹出函数助手页面,下拉选择timeShift

     

     

     

     

     格式 - 将显示创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。

    比如:

    传入yyyyMMddHHmmssSSS,输出20220812101555848

    传入yyyy-MM-dd HH:mm:ss 输出 2022-08-12 10:33:42

     

     日期 - 这是日期值。用于如果要通过添加或减去特定天数,小时或分钟来创建特定日期的情况。如果参数值未通过,则使用当前日期。(没用对,自己打算再找找度娘)

     移位 - 表示要从日期参数的值中添加或减去多少天,几小时或几分钟。如果该值未被传递,则不会将任何值减去或添加到日期参数的值中。不使用符号时为增加,使用+ -号实现加减

        “P1DT2H4M5S” 解析为添加12小时4分钟5

        “P-6H3M”解析为“-6小时+3分钟

        “-P6H3M”解析为“-6小时-3分钟

        “-P-6H + 3M”解析为“+6小时和-3分钟

                  “P1d” 解析为增加一天

                  “PT2H” 解析为增加两小时

                  “PT30m”解析为增加30分钟

                 “PT40S”解析为增加40

                 “P1dT2H30m40s”解析为增加一天两小时三十分钟四十秒

        区域设置 - 设置创建日期的显示语言。不是必填项

      变量 - 创建日期的值将被分配给的变量的名称。不是必填项

    2.2 time函数

    time函数同timeShirt函数用法大致相同。

    示例:

     

    场景

    函数

    结果

    当前时间时间戳

    (毫秒级)

    ${__time(,)}

    1660272941726

    当前时间时间戳

    (秒级)

    ${__time(/1000,)

    1660272952

    指定时间格式

    ${__time(yyyy-MM-dd,)}

    2022-08-12

    展开:

    点击[函数助手/Function Helper]系统弹出函数助手页面,下拉选择time函数

     

     

     

     

     格式 - 将显示创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。

    比如:

    传入yyyyMMddHHmmssSSS,输出20220812101555848

    传入yyyy-MM-dd HH:mm:ss 输出 2022-08-12 10:33:42

    变量 - 创建日期的值将被分配给的变量的名称。不是必填项

     

    time函数与timeShift函数区别:

    *time函数即可以生成秒级别、也可以毫秒级别的时间戳,timeShift函数仅可以生成毫秒级别的时间戳;

    *timeShift函数比time函数多了几项传参,比如可以传入移位参数,构造几天前/几小时/几分钟对应时间值

    推荐网址:(截图很全)

    https://blog.csdn.net/baidu_17201253/article/details/107730382?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-107730382-null-null.pc_agg_new_rank&utm_term=jmeter%E6%97%B6%E9%97%B4%E7%9B%B8%E5%87%8F&spm=1000.2123.3001.4430

    2.3. groovy函数

    问题:我需要一个传参,将指定格式的时间转为时间戳(毫秒级别),试了好几个方法都不太合适,最后使用了同事提供的groovy函数

    示例:比如将startDate的日期转为时间戳

    指定日期

    转为时间戳

    输出

    startDate=2022-07-19 12:30:10

    ${__groovy(new  java.text.SimpleDateFormat('yyyy-MM-dd HH:mm:ss').parse('${startDate}').getTime(),)}

    startTime=1658205010000

     

     

     

     

     

     

     

     

    第三章 常用用法

    3.1. Jmeter读取Excel

    背景:近期需要使用接口构造100条数据,就计划使用excel存储数据,然后将每次读取的数据作为参数传递给接口。

    步骤:

    1) 添加线程组

     

     

     

     

    2) 添加配置元件--》选择CSV Data Set Config

     

     

     

     

     

    附上Excel表格

     

     

     

     

     

    3) 添加--》取样器--》选择BeanShell Sampler,使用vars.get方法获取Excel的值

     

     

     

     

    4) 添加--》取样器--》选择Debug Sampler,以便后面查看是否正常的获取了Excel中的数据

     

     

      

    5) 添加http请求,将Excel中获取的数据作为参数传递

     

     

     

    6) 添加一个查看结果树,以查看执行之后的结果

     

     

     

     

     

     

     

    7) 设置线程组

    比如循环次数设置5,系统会重复执行5次,依次读取第前5条数据作为传参,调用接口

     

     

     

     

     

     

    8) 遇到问题

    Csv格式添加数据,但是无法保存设置的格式,比如设置的时间格式样式就丢失了

     

     

     

     

    所以,最终未使用从excel中读取数据,而是计划从txt中读取数据

     

    3.2. Jmeter读取txt

    步骤基本上同章节3.1 Jmeter读取Excel 一致,也是六大步骤,仅附上与excel 不同的截图

    1) 添加线程组

    2) 添加配置元件--》选择CSV Data Set Config

     

     

     

     附上txt内容

     

     

     

     

    3) 添加--》取样器--》选择BeanShell Sampler,使用vars.get方法获取Excel的值

    4) 添加--》取样器--》选择Debug Sampler,以便后面查看是否正常的获取了Excel中的数据

    5) 添加http请求,将Excel中获取的数据作为参数传递

    6) 添加一个查看结果树,以查看执行之后的结果、

    7) 设置线程组

    第四章 常见问题

    4.1. Jmeter请求参数时,中文出现乱码

    问题描述:使用jmeter时,又遇到了在接口参数输入有带中文的时候,执行接口后,出现乱码的情况

    解决方式:在请求中,content encoding写为:utf-8

     

     

     

     

      

     

  • 相关阅读:
    JAVA基础(八)
    SEGGER 的硬件异常 分析
    JSR 303 校验
    力扣第654题 最大二叉树 c++注释版
    【python笔记】小甲鱼
    1028 List Sorting
    Kamiya丨Kamiya艾美捷人和动物LBP ELISA说明书
    传奇脚本中提到的WIL序号是什么?在哪查看WIL序号?
    C++内存四区模型学习
    亚马逊的推广包括站内推广和站外推广
  • 原文地址:https://www.cnblogs.com/lixinTest/p/16596128.html