zoukankan      html  css  js  c++  java
  • jmeter 参数化大数据取唯一值方式

    jmeter 参数化大数据取唯一值方式

    一、用时间函数:

    因为时间戳永远没有重复,jmeter参数化,而且要取唯一值,可以考虑用时间函数加上其他函数一起:
    # 以13位的时间戳作为 userID
    
    nowTime = lambda: int(round(time.time() * 1000))
    userID = str(nowTime())
    print("userID--------" + userID)
    输出结果:
    userID--------1574172135349

    每次输出的结果都不一样:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import time
    
    nowTime = lambda: int(round(time.time() * 1000))
    userID = str(nowTime())
    
    for i in range(0,10):
        print("userID--------" + userID)
    
    
    输出结果:
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139
    userID--------1574172365139

    二、用UUID:

    解决上面的问题,还可以用UUID来作为参数,UUID通常以36字节的字符串表示,示例如下:
    3F2504E0-4F89-11D3-9A0C-0305E82C3301
    ID多数是数字的,如果不需要 “-”,可以去掉。

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

    1,新建一个BeanShell Sampler;

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

    2,新建一个http请求;

    在BeanShell Sampler获取到UUID的参数后,可以在http请求页面,直接用:     "transferNo":"${transferNo}"      获取。
    运行后,该参数值几乎不出现重复的问题。UUID可以根据自己需要的参数,进行优化。

    三,直接写代码for循环生成大量唯一不重复的测试数据

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    for i in range(1000000, 9000000):
    k = i + 1
    q = '2018' + str(k)
    print('q ========= ' + q)


    输出结果:
    .........

    q ========= 20181145532
    q ========= 20181145533
    q ========= 20181145534
    q ========= 20181145535
    q ========= 20181145536
    q ========= 20181145537

    .........

    最后用txt或者excel将生成的大量数据导入jmeter进行并发请求。

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/111testing/p/11893086.html
Copyright © 2011-2022 走看看