性能测试工具 Locust + Boomer In Docker

这篇具有很好参考价值的文章主要介绍了性能测试工具 Locust + Boomer In Docker。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

背景

启动 Locust-master

Boomer

调试模式启动 boomer

locust worker 模式启动

get 请求

post 请求

指定请求头

直接使用 curl 命令

动态读取 csv

--json-value-type 说明


前言:

Locust 是一种开源的性能测试工具,可以帮助我们快速地进行网站、应用程序等的性能测试和压力测试。Boomer 是一种开源的自动化测试工具,可以帮助我们更加方便地进行测试和调试工作。在 Docker 中使用 Locust 和 Boomer 可以帮助我们更加方便地进行测试和调试工作,并且可以更加灵活地进行测试环境的搭建和部署。

背景

在压测时,使用 locust + boomer,需要配置 python 和 go 环境,稍微有点麻烦。

 

每次接口压测,都需要手动编写 go 脚本。

 

因此想做对 boomer 做一个封装,可以快速的完成这些需求,需要支持单接口 + 动态读取 csv,curl 命令

启动 Locust-master

# run locust master
docker run --name locust-master -it -d -p 8089:8089 -p 5557:5557 rikasai/locust-master:latest

Boomer

调试模式启动 boomer

$ docker run rikasai/boomer:latest --run-tasks worker -master-host=10.0.20.16 --url='http://httpbin.org/post' --method=POST --content-type="application/json"  --raw-data='{"ids": [123,234]}'
--verbose 1
2022/05/17 13:30:44 /usr/src/app/boomer_fasthttp.go:295: Fasthttp is running with these args:
method: POST
url: http://httpbin.org/post
timeout: 10s
post-file:
raw-data: {"ids": [123,234]}
replace-str-index:
json-value-type:
content-type: application/json
disable-keepalive: false
remove-json-string-backslash: true
verbose: true
2022/05/17 13:30:44 /go/pkg/mod/github.com/myzhan/boomer@v1.6.0/boomer.go:214: Running worker
2022/05/17 13:30:44 /usr/src/app/boomer_fasthttp.go:211: resp: {
  "args": {},
  "data": "{\"ids\": [123,234]}",
  "files": {},
  "form": {},
  "headers": {
    "Content-Length": "18",
    "Content-Type": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "fasthttp",
    "X-Amzn-Trace-Id": "Root=1-6283a384-7d87389417a84df642d87a91"
  },
  "json": {
    "ids": [
      123,
      234
    ]
  },
  "url": "http://httpbin.org/post"
}

参数说明

 

docker run rikasai/boomer:latest, 启动一个容器

 

--run-tasks worker,调试模式,固定写法

 

-master-host=10.0.20.16,指定 locust-master 的 ip

 

--url='http://httpbin.org/posturl',请求

 

--method=POST,请求方法

 

--content-type="application/json"

 

--raw-data='{"ids": [123,234]}'

 

--verbose 1,打印响应结果

locust worker 模式启动

get 请求

# 10.0.20.16 is master ip addr
# 5557 is default port
docker run rikasai/boomer:latest -master-host=10.0.20.16 -master-port=5557 --url='http://httpbin.org/get?a=123' --method=GET

post 请求

docker run rikasai/boomer:latest -master-host=10.0.20.16 --url='http://httpbin.org/post' --method=POST --content-type="application/json"  --raw-data='{"ids": [123,234]}'

指定请求头

docker run rikasai/boomer:latest --run-tasks worker -master-host=10.0.20.16 --url='http://httpbin.org/post' --method=POST --content-type="application/json"  --raw-data='{"ids": [123,234]}'  --json-headers='{"User-Agent": "python-requests/2.22.0"}'

直接使用 curl 命令

docker run rikasai/boomer:latest --run-tasks worker -master-host=10.0.20.16 --curl="curl --location --request POST 'http://httpbin.org/post' \ --header 'Content-Type: application/json' \ --data-raw '{ "string": "hello,boomer" }'"

动态读取 csv

docker run -d --name boomer -v /root/data/data.csv:/app/data.csv rikasai/boomer:latest  -master-host=10.0.20.16 --url=http://httpbin.org/post  --method=POST --content-type="application/json"  --raw-data='{"a": "$a", "b": "$b"}'  --replace-str-index='{"$a":0,"$b":1,"$c":2}' --json-value-type "int" --verbose 1

参数说明

 

-d,后台模式启动容器

 

--name boomer,指定容器的名字叫 boomer,可以随意起,不重名就行

 

-v /root/data/data.csv:/app/data.csv,把宿主机的 csv 文件挂载到容器里,/root/data/data.csv 是宿主机文件路径,/app/data.csv 是容器里固定路径

 

--raw-data='{"a": "$a", "b": "$b"}',$a 是取变量 a,$b 是取变量 b

 

--replace-str-index='{"$a":0,"$b":1,"$c":2}',把 csv 中每一行着的第 0 值赋给 $a,第 1 个值赋给 $b,第 2 个赋给 $c

 

--json-value-type "int" 指--raw-data 中变量的值类型是 int 类型

/root/data/data.csv 内容是:

1,2,3
3,4,5
4,5,6
455,56,633

请求 log

2022/05/17 14:37:56 /usr/src/app/boomer_fasthttp.go:211: resp: {
  "args": {},
  "data": "{\"a\":1,\"b\":2}",
  "files": {},
  "form": {},
  "headers": {
    "Content-Length": "13",
    "Content-Type": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "fasthttp",
    "X-Amzn-Trace-Id": "Root=1-6283b344-2ec1715202778cff233df950"
  },
  "json": {
    "a": 1,
    "b": 2
  },
  "url": "http://httpbin.org/post"
}

2022/05/17 14:37:56 /usr/src/app/boomer_fasthttp.go:211: resp: {
  "args": {},
  "data": "{\"a\":4,\"b\":5}",
  "files": {},
  "form": {},
  "headers": {
    "Content-Length": "13",
    "Content-Type": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "fasthttp",
    "X-Amzn-Trace-Id": "Root=1-6283b344-155b24075acdcb214e963d51"
  },
  "json": {
    "a": 4,
    "b": 5
  },
  "url": "http://httpbin.org/post"
}

--json-value-type 说明

--raw-data='{"a": "$a", "b": "$b"}'

csv 内容是

1,2,3
3,4,5
4,5,6
455,56,633
  • --json-value-type=intArray,请求结果是
{
    "a": [
        3
    ],
    "b": [
        4
    ]
}
  • --json-value-type=string,请求结果是
{
    "a": "3",
    "b": "4"
}
  • --json-value-type=interface,请求结果是

csv 内容是

3,4,5
aa,bb,cc

先尝试转换成 int 类型,转换成成功就是用 int 值,不成功就是用原始值

3,4,5 转换成

{
    "a": 3,
    "b": 4
}

aa,bb,cc 转换成 int 不成功,使用原始值

{
    "a": "aa",
    "b": "bb"
}
  • 不支持深层 json,这里的 $b 是不支持的。
{
    "a":{
          "b": "$b"
    }
}

目前动态替换并不完美,只能是一层 json 和 body。

性能测试工具 Locust + Boomer In Docker,自动化测试,软件测试工具,软件测试,docker,eureka,容器,python,pytest,开发语言,测试工具

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

性能测试工具 Locust + Boomer In Docker,自动化测试,软件测试工具,软件测试,docker,eureka,容器,python,pytest,开发语言,测试工具文章来源地址https://www.toymoban.com/news/detail-608078.html

到了这里,关于性能测试工具 Locust + Boomer In Docker的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试工具之 Jmeter性能测试

    1.性能测试概念: 通过自动化测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试 2.性能测试条件 系统基础功能测试验证完成 系统趋于稳定 3.性能测试基本流程 需求分析 (1)系统信息调研 (2)业务信息调研 (3)性能需求评估   判断是否进行

    2023年04月09日
    浏览(70)
  • 2023软件测试工具大全(自动化、接口、性能、安全、测试管理)

    目录 前言 一、自动化测试工具 Selenium Appium TestComplete 二、接口测试工具 Postman SoapUI JMeter 三、性能测试工具 LoadRunner JMeter Gatling 四、安全测试工具 Burp Suite OWASP ZAP Nmap 五、测试管理工具 TestRail JIRA TestLink 总结 软件测试是保障软件质量的重要环节,而现代化的软件开发过程中

    2024年02月16日
    浏览(128)
  • 快试试这款自动化测试工具,性能起飞

    在使用龙测 Agent 平台之前,也使用过其他平台的一些产品。相比之下龙测平台功能性和颜值都相当 Nice。下面会通过详细功能以及使用流程为大家详细介绍龙测平台的强大之处。 首先点击 平台体验链接 进入龙测自动化测试平台,会弹框提示简单 4 步带领用户更快熟悉平台功

    2024年02月02日
    浏览(46)
  • 软件测试(功能、工具、接口、性能、自动化、测开)详解

    一、软件测试功能测试 测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。 黑盒测试常见测试用例编写方法 1、等价类 选取少数

    2024年02月07日
    浏览(83)
  • 十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

    在本篇文章中,我将给大家推荐 10 款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化的自动化测试平台,一站式提供发布单元,API,环境,用例,前

    2024年02月15日
    浏览(59)
  • PC端性能测试自动化工具技术方案【采集脚本篇】

    ● 需求背景 PC端应用程序在每一个版本的迭代过程中,由于各版本的功能改动较多,为了避免在发布新版本时性能不会出现“大跳水”的情况,需要针对每一个版本进行性能测试。由于人工手动测试所需时间较长,且存在参数不准确、时间不可控等问题,所以需要针对PC 端开

    2024年02月06日
    浏览(43)
  • 压力测试(QPS)及测试工具Locust

    通常指的是确定接口或服务能够处理的最大请求量(吞吐量)和并发用户数,同时保持合理的响应时间和稳定性。 最大吞吐量:系统每秒可以处理的请求数。 最大并发用户数:系统可以同时支持的用户数。 响应时间:系统响应请求的时间。 稳定性和可靠性:在高负载下系统

    2024年04月10日
    浏览(46)
  • 【墙裂推荐!】十款开源测试开发工具(自动化、性能、造数据、流量复制)​

    目录 1、AutoMeter-API 自动化测试平台 2、QA Wolf 浏览器自动化测试工具 3、Mimesis 用于 Python 的高性能虚假数据生成器 4、Ddosify 高性能负载测试工具 5、AutoCannon HTTP/1.1 基准测试工具 6、Sharingan 流量录制回放工具 7、randdata 随机测试数据生成工具 8、DrissionPage WEB 自动化测试集成工具

    2024年02月06日
    浏览(56)
  • Locust:分布式负载测试工具的利器

    引言: 在软件开发过程中,负载测试是确保系统能够承受高并发访问的重要环节。然而,传统的负载测试工具往往无法满足大规模并发测试的需求。为了解决这一问题,Locust应运而生。本文将介绍Locust的特点、使用方法以及其在分布式负载测试中的应用,帮助读者了解并掌握

    2024年02月03日
    浏览(39)
  • 【DockerCE】使用Docker安装运行性能测试工具-RunnerGo

    一、安装环境 CentOS-7.9 / Docker-CE-23.0.1 / Docker-compose-2.17.2 二、资源配置 4核8G(官方建议8核16GB) 三、安装运行 从Github下载安装所需的文件包(版本1.0.3),这里选择的是tar.gz包  将压缩包里面的runnergo目录上传到本地虚拟机/data目录下,目录结构如下所示: 备注:runnergo.yaml是

    2023年04月23日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包