现象:

使用jmeter做接口压测时,总会遇到压测时,提示不允许重复id或提示订单不允许重复现象,那么如何解决呢?

原料工具

  • jmeter4.0
  • 本地准备好接口服务

思路:

  • 单个接口,小批量接口,一般以时间戳或者是日期格式的数据作为接口测试参数,解决参数化问题;
  • 大批量接口压测时,这上面的时间戳方式是不行的,秒级请求或者毫秒级别的请求不能满足大批量接口压测需求,这时候需要用比毫秒小的单位纳秒再做字符串拼接

时间戳函数操作:

1、通过函数助手,生成一个_time 函数:

2、如果参数为时间戳,那公式为:

${__time(,)}  :  默认该公式精确到毫秒级别, 13位数

${__time(/1000,)}  : 该公式精确到秒级别, 10位数

3、 如果参数需要为当前日期,那公式为:

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

${__time(YMDHMS,)}

实例demo演示:

1、使用jmeter创建一个为 时间戳重复请求demo” http请求,并添加查看结果树

采用时间戳(日期格式化)形式组成唯一参数形式:${__time(yyyyMMddHHmmssSS,)}

2、使用jmeter创建一个为 “时间戳不重复请求demo”  http请求,并添加查看结果树

采用时间戳(日期格式化+纳秒函数)

添加前置处理器-->bean shell Preprocessor

beanshell部分:

long timeStamp = System.nanoTime();
vars.put("timeStamp",timeStamp+"");
log.info("---------------------------------------"+vars.get("timeStamp"));

3、运行结果:

第一个http请求(时间戳重复请求demo)结果:

显然都是一样的如下图:

第二个http请求(时间戳不重复请求demo)结果:

本次练习jmeter工程下载链接:

https://download.csdn.net/download/wangqiang_cyou/10814770

部分参考文章:https://www.cnblogs.com/kaibindirver/p/8964295.html

最新文章

  1. 死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
  2. Hystrix框架3--线程池
  3. Error : should use android:showAsAction when not using support library
  4. 【随笔】js加载
  5. 一个背景图实现自定义spinner样式
  6. 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)
  7. C++排序函数sort/qsort使用
  8. 以不同用户身份运行程序,/savecred只需要输入一次密码(GetTokenByName取得EXPLORER.EXE的令牌,然后调用CreateProcessAsUser,而且使用LoadUserProfile解决另存文件的问题)good
  9. MySQL拷贝表的几种方式
  10. windows下netstat -aon命令
  11. Linux学习笔记(一):常用命令(2)
  12. 路由器、交换机学习之IP地址、使用网络掩码划分子网
  13. 【2017-05-30】WebForm文件上传
  14. python学习:收集主机信息
  15. appium--xpath定位元素用法
  16. Linux服务器初步配置流程
  17. IIS+Tomcat功能iis端口2
  18. Netty4ClientHttpRequest代码赏析
  19. python的字符串分片
  20. attenuation

热门文章

  1. 【三】Eureka服务注册与发现
  2. windows生成dump文件
  3. 关于Java 实现抽象类的抽象方法的特性的利用---面向切面
  4. iOS拍照图片旋转的问题
  5. oracle 远程连接不到dba用户
  6. PySpider 爬虫系统
  7. Python之线程 2 - Python实现线程
  8. Flume配置Replicating Channel Selector
  9. python 的基础 学习第十天函数的初始
  10. 【mmall】IDEA中Service层无法识别Mapper,但是代码通过问题