• 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程序员必读的书籍(适合于本人)
    面试第三天
    sql常用的函数(持续更新中)
    linux 常用命令
    drf的Response返回字符串有问题
    celery pip仓库上的代码有问题 请使用git上最新版
    PyCrypto已放弃维护 请使用PyCryptodome
    django+celery实现异步任务
    利用Oh-My-Zsh打造你的超级终端---待排版
    pycharm搭配docker本地调试
  • 原文地址:https://www.cnblogs.com/111testing/p/11893086.html
Copyright © 2020-2023  润新知