压测时,有些接口的参数存在唯一性的业务要求,如:注册时的手机号,修改信息等业务。
这些接口通常会做幂等处理,或者是有些参数会被写入Redis缓存,这样就导致我们实际的压测对象、压测力度与我们理想的不一致。
比如:涉及到的内存占用,网络资源占用,数据库资源占用等都会不同;
那么为了解决这个,我找了下PTS的自带的函数,还真有呢~
S1 :选择需要替换的参数值,双击;
S2:点击搜索图标,可以看到如下选择框:
目前可以明确的2种为:
1.全局自定义参数:这个需要我们先自己定义的参数作为的全局变量,然后在这里可以引用;
2.系统函数:这个就PTS提供的一些现成的函数了;具体如下:
包括一些常用函数,随机函数,四则运算,加密算法;
3.串联链路参数:这个还没用过,不知道是啥;
S3: 按照我们的需求,这里使用的是如下这个,${sys.unique(“aa”,1,1000)}
S4:替换后我们得到了以1开头的1到1000之间的随机且唯一的整数;注意:这里的唯一是指全局唯一,暂时实测的结果是,同一个场景的同一次压测过程中是唯一的;这里的随机,其实是自增的;
(其他的情况还未用到过,所以这个全局还没有实际验证过;)
S5:先配置一次并发量少一点的,我们试试随机的效果;
这里可以直接看接口请求日志,或者数据库,若是没有日志的话,可以去PTS的报告里查看请求的详情内容,找2条日志看看,如下: