700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 8s 接口压力测试_Python Locust 基于Robot Framework实现关键字驱动接口性能测试

8s 接口压力测试_Python Locust 基于Robot Framework实现关键字驱动接口性能测试

时间:2021-06-27 06:49:45

相关推荐

8s 接口压力测试_Python Locust 基于Robot Framework实现关键字驱动接口性能测试

上一篇文章Python Locust 基于Robot Framework实现关键字驱动接口性能测试中,我们分享了如何利用Locust库结合Robot Framework实现接口的性能指标的持续性比较,已达到高效、持续性的性能测试的目的,针对同一接口的不同版本存在较大性能差异时,可以及时的发现,并进行更深入的性能测试。

这篇文章主要介绍围绕着整体框架设计的具体实现,其中包含压力生成关键字、负载控制(包含结果采集)关键字、结果分析器关键字、文件清除关键字四部分,接下来主要分享这四个关键字的具体实现。

压力生成关键字

压力生成关键字实现利用性能测试用例模版根据不同的接口请求类型、检查点、请求体等内容构建各个Locustfile文件(接口性能测试用例):

性能测试用例模板构建

对众多接口性能测试用例进行分析,不难发现除了负载不同,基本大致相同,基于此可以抽取为如下接口性能用例模板,用以实现代码与参数的解耦。

locustfile_mode.txt

性能测试用例生成

通过传参实现性能测试脚本的Locustfile的复刻,生成对应接口的性能测试Locustfile脚本,改脚本运行后删除,不进行维护。

压力生成关键字核心源码

通过locustfile_init()方法,即可生成各接口对应的Locustfile文件,如下:

locustfile_1535534575.py

负载控制关键字

负载控制关键字核心源码如下,加载用户输入的负载模式,运行对应的Locustfile性能测试脚本,获取性能测试结果,并实现结果入DB数据库。

负载控制关键字核心源码

robot framework中负载控制关键字运行结果

运行每一个Locustfile性能测试脚本,都会生成两个性能测试结果文件,如下。

通过对两个文件进行解析,将数据存储至Sqlite数据库中。

Sqlite数据库中的性能测试结果

结果分析关键字

获取数据库中相同接口相同负载的性能测试结果,然后根据阈值校验项,检测各项结果是否超过历史平均结果的阈值设定,如果异常则断言失败。

可以根据实际情况设定阈值,同时可以选择需要关注的性能指标进行比对。

结果分析关键字核心源码

文件清除关键字

删除临时文件,包含Locustfile文件、执行结果文件。由于整体架构不需要对Locustfile文件进行维护,只需要维护接口及相关参数,负载设定即可,因此删除Locustfile文件。

文件清除关键字核心源码

应用效果

场景一 单接口性能测试,无参数化。

我们可以看到通过几行简单的配置,就可完成接口的性能测试用例开发。

场景二 单接口性能测试,参数化。

参数化数据存放在parameterfile.txt中。

参数化文件 parameterfile.txt

测试结果

一般情况,此次测试结果不超过历史均值的设定阀值,则视为通过,否则异常。

若对你有所帮助,欢迎大家评论、留言。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。