• jmeter测试接口--解决参数化取唯一值的问题(用UUID)


    一、用时间函数:

    jmeter参数化,而且要取唯一值,可以考虑用时间函数加上其他函数一起:

    {"merchant_id":"615051940310129","biz_code":"1001","order_id":"${__time(,)}${__counter(,)}",

    "order_amt":"100","bg_url":"www.baidu.com","sign":"22A356FF1010B22670417E2107DB4229"}

     但是如果接口的处理能力很快,这个参数还是会存在重复的id;

    二、用UUID:

    解决上面的问题,还可以用UUID来作为参数,UUID通常以36字节的字符串表示,示例如下:

    3F2504E0-4F89-11D3-9A0C-0305E82C3301
    

     订单ID多数是数字的,如果不需要“-”,可以去掉。

    如下是分析在jmeter中如何使用:

    1.新建一个事务;

    2.新建一个BeanShell Sampler;

    3.新建一个http请求;

    如下图:

    4.在BeanShell Sampler编写UUID的代码:

    import java.util.UUID;
    
    UUID uuid1 = UUID.randomUUID();    //获取UID的值
    
    vars.put("order_id",(uuid1.toString()).toUpperCase().replaceAll("-",""));   
    
     //去掉UUID的“-”,再赋值给order_id  运行获取的参数就是:3F2504E04F8911D39A0C0305E82C3301
    
    //vars.put("order_id",(uuid1.toString()).toUpperCase());  
     //这个就是不用去掉UUID的“-”    运行获取到的参数就是:3F2504E0-4F89-11D3-9A0C-0305E82C3301
    

    5.在http请求如下:

    在BeanShell Sampler获取到UUID的参数后,可以在http请求页面,直接用:     "order_id":"${order_id}"      获取。运行后,该参数值几乎不出现重复的问题。

    UUID可以根据自己需要的参数,进行优化

  • 相关阅读:
    Java程序员必知的8大排序(转载)
    Eclipse快捷键大全(转载)
    Java强引用、 软引用、 弱引用、虚引用(转)
    java数据类型二(转)
    为什么静态成员、静态方法中不能用this和super关键字(转)
    POJ 2002
    POJ 3126的教训
    POJ 3349
    POj 1105解题报告
    POJ 3278
  • 原文地址:https://www.cnblogs.com/feng-1314/p/7115605.html
Copyright © 2020-2023  润新知