目录

测试数据生成

用例智能化自动执行-梯度多轮迭代爬山方案


在线工程的性能测试相比于传统的性能测试,要求比较严格,响应时间的单位都是按照毫秒来进行计算的。在计算力不断突破的今天,性能决定了在线工程的服务算法商业化的天花板。

所以性能测试是重中之重,任何一次变更都要做一次完整,细致的性能测试。传统的性能测试工具无法满足在线工程系统的多变场景需求和细致入微的性能诉求,同时传统的性能测试对人的依赖非常强,已经不能满足我们对服务端测试未来布局的要求。

在线工程的性能测试完全是标准化测试,它具有标准化的测试用例,标准化的执行过程,标准化的校验流程。而标准的东西一定可以自动化,那如何实现自动化呢?

为了实现性能测试的自动化,我们结合算法将测试数据的生成,执行,校验全部自动化,最终产品化了无人值守的性能测试平台。

图片

测试数据生成

通过对在线工程的日志分析和抽取,自动生成压测数据查询。多场景数据抽取/构造方案如下。

1>基于业务逻辑的顺序抽取,用户的请求有关联性,如用户先浏览,然后对比其他商品,最后下单,我们提供基于业务场景的抽取模式,可以更好地模拟线上的真实访问场景。

2>时序抽取,用户请求的分布和构成在一定时间内呈现规律性变化,我们基于请求参数时间戳,页码等进行排序,按照时序进行抽取,更真实地模拟请求顺序。

3>采样与抽样抽取,对于海量线上数据,我们对待特定参数,如Cookie,userAgent 等进行哈希,并采取采样与抽样的方式,抽取能够反映线上分布情况的最小流量集,实现最短时间内,消耗最少资源获取具有代表性的流量集合。

4>随机抽取等模式,除了上述的特定场景,我们还提供了随机random的抽取模式,对于验证系统的鲁棒性(也可以理解为健壮性或强壮性。在计算机科学中,鲁棒性体现在软件在面对输入错误、磁盘故障、网络过载或有意攻击时,系统能否保持正常运行而不崩溃。),稳定性有重要作用。

用例智能化自动执行-梯度多轮迭代爬山方案

我们使用工业界普遍使用的爬山算法,并结合业务特有的场景,给出一套多轮迭代的爬山方案,可以更准确地探测系统极值。

图片

横轴为流量,纵轴为被测系统的响应时间,这是一套典型的通过梯度迭代最终获取系统最优解的性能测试流程。从小流量开始加压预热,在第一次到达极限后进行局部迭代,最终获取最优解。

由于系统的最大负载和压力一般正相关,因此通过这种类似于爬山算法的梯度多轮迭代算法,可以迅速得到全局最优解。

阅读后若有收获,不吝关注,分享等操作!

更多推荐