当前位置:网站首页>动态接口比例性能测试实践
动态接口比例性能测试实践
2022-08-03 17:42:00 【InfoQ】
/**
* 随机选择某一个对象
*
* @param list
* @param <F>
* @return
*/
public static <F> F random(List<F> list) {
if (list == null || list.isEmpty()) ParamException.fail("数组不能为空!");
return list.get(getRandomIntZero(list.size()));
}
size()
- 使用异步线程动态往list中添加和删除对应的元素
- 使用线程安全的类缓存list的
size()
- 使用缓存的size进行随机,在增减前后重置参数
- 整个变化随着用例执行开始执行,用例结束而结束,使用同一个状态
- 间隔时间设置,间隔interval调整一次,调整N次之后倒置增减条件
boolean upKey = false
fun {
//100s转变一次
while (FunQpsConcurrent.key) {
if (upKey) {
10.times {
sleep(10.0)
size.getAndAdd(-reduce)
reduce.times {
PriapiWriteApiQpsConfig.apiList.remove(13 as Integer)
}
add.times {
PriapiWriteApiQpsConfig.apiList.add(10)
}
size.getAndAdd(add)
}
} else {
10.times {
sleep(10.0)
reduce.times {
PriapiWriteApiQpsConfig.apiList.add(13 as Integer)
}
size.getAndAdd(reduce)
size.getAndAdd(-add)
add.times {
PriapiWriteApiQpsConfig.apiList.remove(10 as Integer)
}
}
}
upKey = !upKey
}
}
static AtomicInteger size = new AtomicInteger()
- 增加list长度,先调整list,然后调整缓存。减少list长度,先减少缓存,然后调整list。
- 这里使用了
java.util.concurrent.atomic.AtomicInteger
,其实并不是必要的,可以使用int也是可以的。
PriapiWriteApiQpsConfig.apiList.get(getRandomIntZero(size.get()))
- 性能测试专题
- Java、Groovy、Go、Python
- 单测&白盒
- FunTester社群风采
- 测试理论鸡汤
- 接口功能测试专题
- FunTester视频专题
- 案例分享:方案、BUG、爬虫
- UI自动化专题
- 测试工具专题
阅读原文,跳转我的仓库地址
边栏推荐
- 茅台日赚1.65亿,经销商日子却越来越难
- CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
- 新特性解读 | MySQL 8.0 在线调整 REDO
- CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
- Weekly recommended short video: In order to fill the gap of learning resources, the author specially wrote a book?
- 酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式
- 为什么我用了Redis之后,系统的性能却没有提升
- LyScript 从文本中读写ShellCode
- 并查集模板及思想
- STM32——LCD—FSMC原理简介
猜你喜欢
003_Kubernetes核心技术
融云「音视频架构实践」技术专场【内含完整PPT】
一些嵌入式软件设计经验
Weekly recommended short video: In order to fill the gap of learning resources, the author specially wrote a book?
全尺度表示的上下文非局部对齐,南科大&优图提出NAFS解决基于文本的Re ID
图像质量指标:PSNR、SSIM、MSE
gcc的学习及 版本太低如何在conda环境下重新进行安装
如何避免无效的沟通
一键进入华为云会议,长期免费值得所有开发团队有一套【华为云至简致远】
宝塔搭建企业招聘网站源码实测
随机推荐
云图说丨初识华为云微服务引擎CSE
一个域名对应多个IP地址
STM32——LCD—FSMC原理简介
JVM参数设置
Cool open technology x StarRocks: unified OLAP analysis engine, comprehensive building digital model of OTT
从技术全景到场景实战,透析「窄带高清」的演进突破
关于 Intel 在 micro-vm 快速启动的探索及实例演示 | 第 36-38 期
LyScript 内存交换与差异对比
精酿啤酒品牌,过把瘾就死?
Uniswap或将开启“费用开关”,UNI持有者可享受分红
借助Web3盘活日本优质IP:UneMeta 与 OpenSea 的差异化竞争
Win11系统的显卡驱动安装的详细方法步骤
软件测试<进阶篇-->测试分类>
技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris
腾讯电竞的蓝翔梦
企业如何选择低代码开发平台
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
es6新增-Promise详解(异步编程的解决方案1)
火热的印度工厂,带不动印度制造
这是Facebook母公司 关于元宇宙的80万亿美元豪赌