当前位置:   article > 正文

HTTP性能测试工具-wrk

HTTP性能测试工具-wrk

在这里插入图片描述

1、前言

性能测试对软件测试的重要性在于它可以评估软件在特定负载条件下的性能表现,包括响应时间、吞吐量、并发用户数、资源利用率等。通过性能测试,可以识别并解决可能存在的性能问题,提高软件的可靠性、稳定性和可伸缩性。性能测试还可以帮助确定软件的容量需求,以便在生产环境中正确配置硬件和软件资源。因此,性能测试是软件测试中不可或缺的一部分,可以提高软件的质量和用户体验。

常见的性能测试工具有JMeter、LoadRunner等,本文将介绍另一款性能测试工具 - wrk,能够通过很少的线程压出很大的并发HTTP请求,进行服务器性能测试。

2、简介

wrk为C语言编写的轻量级HTTP性能测试工具,可以在单核CPU上运行时能够产生显著的负载,它将多线程设计与可扩展的事件通知系统(如epoll和kqueue)相结合。可选的LuaJIT脚本可以执行HTTP请求生成、响应处理和自定义报告。

github地址:

https://github.com/wg/wrk/

3、安装

一、Linux上安装

1、安装git

cd /usr/local/src
sudo yum install git -y
2、安装openssl
sudo yum install openssl-devel
  • 1
  • 2
  • 3
  • 4

3、下载、编译(需安装gcc)

git clone https://github.com/wg/wrk.git
cd wrk
make
  • 1
  • 2
  • 3

二、Mac上安装

brew install wrk
  • 1

4、快速上手

输入wrk,查看帮助信息。

Usage: wrk <options><url>
  Options:
    -c, --connections <N> Connections to keep open
    -d, --duration <T> Duration of test
    -t, --threads <N> Number of threads to use

    -s, --script <S> Load Lua script file
    -H, --header <H> Add header to request
        --latency Print latency statistics
        --timeout <T> Socket/request timeout
    -v, --version Print version details

  Numeric arguments may include a SI unit (1k, 1M, 1G)
  Time arguments may include a time unit (2s, 2m, 2h)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1、Get示例:

使用12个线程(threads),保持400个HTTP连接(connections)开启,测试时间持续5秒(seconds)。

wrk -t12 -c400 -d5s https://www.httpbin.org/
  • 1

测试结果:

平均响应时间364.15ms

在这里插入图片描述

2、Post示例:

wrk只能直接使用get、delete请求,post请求需要用到lua脚本。

创建post.lua文件,添加HTTP方法、主体和请求头。

wrk.method = "POST"
wrk.body = "username=admin&password=123456"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
  • 1
  • 2
  • 3

使用4个线程(threads),保持200个HTTP连接(connections)开启,测试时间持续3秒(seconds),打印延迟统计信息。

wrk -t4 -c200 -d3s --script=post.lua --latency https://www.httpbin.org/post
  • 1

测试结果:

Latency:响应时间

Req/Sec:单个线程处理请求数

Avg:平均值

Stdev:标准差,值越大说明机器或服务性能不稳定导致

Max:最大值

+/- Stdev:正负标准差比例,差值比标准差大或小的数据比率

Latency Distribution:延时分布多少ms以下请求数比例

Requests/sec:平均每秒处理请求数

Transfer/sec:平均每秒传输数据量

图片

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/618074
推荐阅读
相关标签
  

闽ICP备14008679号