上一篇文章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

测试结果

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

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

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

  1. 从零开始的Nginx [ 8 ] --- nginx 的性能优化:ab接口压力测试工具,tomcat企业运维,WEB站点部署,项目上线

    文章目录 nginx 性能优化 1.当前系统结构瓶颈 2.了解业务模式 3.性能与安全 4.系统与nginx性能优化 1.文件句柄 2.设置方式 3.系统全局性修该和用户局部性修改 4.进程局部性修改 ...

  2. python分析股票支撑压力_python+requests接口压力测试500次,查看响应时间的实例

    接口压力测试500次,查看响应时间 import json import requests import logging logging.basicConfig(level=logging.INFO, ...

  3. 【Jmeter基础篇】03:如何进行post接口压力测试

    目前网络上有很多很多Jmeter的压力测试使用指南,但是在实际使用过程中,很多朋友会遇到许多并不处于理想状态的情况,比如某些参数不知道应该往哪里放,具体怎么分析测试结果等等. 所谓压力测试,实质就是让 ...

  4. 二、多并发实现接口压力测试

    一.flsak接口压力测试 import base64 import logging import os, cv2,time import urllib, glob import numpy as n ...

  5. 学习笔记-JMeter 进行接口压力测试

    一.压力测试场景设置 1.场景设定:进行接口压力测试时,有单场景也有混合场景.单场景就是对一个接口进行请求:混合场景需要对多个接口进行请求,在流程类业务场景会运用到 2.压测时间设定:通常时间为10- ...

  6. Jmeter验证码图片识别注册接口压力测试实战

    写在前面 前段时间写了一篇博文<Jmeter验证码注册接口压力测试实战>,前两天又登录对应的网站看了一下.发现原来滑动验证的方式改成了图片验证码的方式,防止用户多次发送手机验证码. 看到这 ...

  7. 用python做简单的接口压力测试

    一个多月没有更博了,最近研究了一下接口的压力测试,主要来说就是连续频繁的对接口的调用,来测试接口的响应速度.返回结果,找到接口的性能瓶颈,最大承受极限等. 做接口压力测试的方法和工具很多,比较常用的工 ...

  8. [Go菜牛系列]通过go-wrk进行HTTP接口压力测试

    http 接口压力测试示例 go-wrk 是一个用Go语言实现的轻量级的http基准测试工具,类似于wrk,本文将简单介绍一下如何使用go-wrk实现接口的性能(压力)测试. 安装 go-wrk ht ...

  9. Jmeter验证码注册接口压力测试实战

    主要学习的内容包括发送HTTP请求.HTTP信息头管理器.HTTP cookies管理器.用户定义的变量.响应断言.CSV数据文件设置的使用. 测试网址及测试接口等说明 提供的测试网址为: http: ...

最新文章

  1. 网页设计师的必备选择20 +必需的Windows应用程序
  2. 用Windows Live Writer离线更新博思日志
  3. 震惊!java中日期格式化的大坑!
  4. 【Kafka】kafka 监控指标项
  5. Jmeterbadboy环境搭建
  6. 如果你手头有20万,你是拿去买房还是拿去投资?
  7. Solidworks踩坑随笔
  8. jstl中的日期格式化
  9. 无偿加班_我如何赚到我的第一百万美元(无偿代码)
  10. kindle可以看html格式文章吗,Kindle 新功能上线:终于可以显示阅读数据了
  11. 在Visio中如何绘制直线
  12. 微信小程序收款手续费_为什么有人做的小程序交易手续费是0.38%而不是0.6%?
  13. Ubuntu安装运行YOLOV3 解决opencv报错 No package ‘opencv‘ found
  14. Android 启用/禁用蓝牙传输文件功能(不能影响蓝牙耳机听歌)
  15. nginx 访问图片404_Nginx学习笔记(二、Nginx配置文件详解) - 被猪附身的人
  16. 2021年四川高考成绩及录取结果查询,2021年四川高考录取结果查询时间及查询入口,录取结果多少号公布...
  17. c++11:std::chrono::time_point、time_t、std::localtime、std::gmtime、std::chrono::steady_clock
  18. 贝叶斯统计R语言操作3——假设检验
  19. 分布式搜索引擎的研究
  20. python小程序抢购脚本怎么写_实战|抢购脚本编写

热门文章

  1. 禁止/启用angularjs相关缓存的方法
  2. 【SICP练习】38 练习1.43
  3. JPA入门例子(采用JPA的hibernate实现版本)
  4. 设计模式笔记(1)---开篇(文章索引)
  5. 必须掌握的八个【cmd 命令行】[转]
  6. 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!
  7. springboot后台弹出前台对话框_基于springboot的精品小说网站
  8. 建立数据库时连接出错_PHP的福音!支持多数据库连接,高性能的开源MySQL连接池...
  9. php windows应用开发,开发老手谈Windows平台的PHP应用开发
  10. 简书 java jvm_JVM介绍