Skip to content
石头软件测试技术分享石头软件测试技术分享
主页
github icon
  • 进阶测试

    • 自动化测试

      • 浅谈自动化测试
        • 自动化测试的方式与范围
          • 自动化测试框架建立
            • 自动化测试尝试
            • 性能测试

              • 第一次压力测试
                • 参考文档
                  • 测试工具及环境
                    • 测试方法
                      • 测试的目的
                        • 安装命令
                          • 常用参数介绍
                            • 示例
                              • 响应内容介绍
                                • 请求失败原因
                                  • 统计方法
                                    • 总结
                                    • jmeter
                                      • 压力测试+监控框架

                                    第一次压力测试

                                    author icon石头calendar icon2022年3月2日category icon
                                    • 性能测试
                                    tag icon
                                    • Apache AB
                                    timer icon大约 3 分钟

                                    此页内容
                                    • 参考文档
                                    • 测试工具及环境
                                    • 测试方法
                                    • 测试的目的
                                    • 安装命令
                                    • 常用参数介绍
                                    • 示例
                                    • 响应内容介绍
                                    • 请求失败原因
                                    • 统计方法
                                    • 总结

                                    # 第一次压力测试

                                    # 参考文档

                                    https://httpd.apache.org/docs/current/programs/ab.htmlopen in new window

                                    # 测试工具及环境

                                    工具: Apache AB
                                    环境: Linux CentOS 7

                                    # 测试方法

                                    • 使用ab在服务器测试
                                    • 并发数量为二的次幂增长
                                    • 当QPS断崖式下降、接口错误率超过50%、接口平均响应时间过长则停止测试

                                    # 测试的目的

                                    • 测试接口吞吐量
                                    • 测试接口响应时间
                                    • 测试接口稳定型

                                    # 安装命令

                                    yum -y install httpd-tools
                                    
                                    1

                                    # 常用参数介绍

                                    参数用途
                                    -n总共的请求执行数,默认是1
                                    -c并发数,默认是1
                                    -t测试所进行的总时间, 秒为单位
                                    -pPOST请求时的数据文件路径
                                    -T用于POST/PUT数据的内容类型标头, 例如application/x-www-form-urlencoded, 默认值为text/plain
                                    -H请求头,多个请求头可使用多个-H参数
                                    -v打印响应内容,请求头和响应码, 设置3将显示响应代码(404、200等), 2将显示警告和信息。
                                    -p 需要配合 -T使用

                                    # 示例

                                    ab -p "/xx.txt" -T "application/json" -H "请求头" -t 持续时间 -c 线程数量 需要测试的api接口
                                    
                                    1

                                    # 响应内容介绍

                                    img.png

                                    参数用途
                                    Server Software请求返回header类型,可能是nginx、apache、IIs等
                                    Server Hostname请求ip或者域名
                                    Server Port请求端口,当前请求为https所以端口为443,请求https端口80
                                    SSL/TLS Protocolhttps端口协议
                                    Document Path路径
                                    Document Length第一个成功返回的文档的字节大小
                                    Concurrency Level并发数
                                    Time taken for tests从建立连接到最后接受完成总时间
                                    Complete requests总请求数成功的
                                    Failed requests失败的数量
                                    Total transferred从服务器接收的字节总数
                                    HTML transferredHTML接收字节数
                                    Requests per second每秒请求数(总请求数/总时间)
                                    Time per request服务器处理每个请求平均响应时间

                                    警告

                                    Failed requests的数量统计有异议,有时候返回了响应内容和响应码200依然会统计为失败

                                    # 请求失败原因

                                    失败类型用途
                                    Connect无法送出要求、目标主机连接失败、要求的过程中联机被中断
                                    Length响应的内容长度不一致 (以 Content-Length 标头值为判断依据)
                                    Exception发生无法预期的错误
                                    而从上述说明就可以很明显看出所有的 Failed requests 都落在 Length 这个类别上,原来这是因为受测网站的首页是动态的内容,当第一次发出 HTTP request 与后续发出的 HTTP request 所得到回应的 HTML 长度都是不同大小的 ( 每次回应的 Content-Length 大小不一致 ),才会引发 Failed requests 的 Length 问题的失败,因此这类 Length 不一致的失败在进行「动态网页」压力测试时是合理的,可以不予理会。

                                    # 统计方法

                                    Excel统计并画出折线统计图
                                    img_1.png

                                    # 总结

                                    由于是第一次进行压力测试, 统计数据方式和测试方法不够科学且统计的信息不够完整, 测完一个接口并统计数据就花费很长时间, 命令行的压测工具测试数据准备也比较麻烦, 总体来说虽然费事费力但为后面性能测试的深入了解与学习起了一个良好的开端

                                    下一页
                                    jmeter
                                    Copyright © 2021-present Evan You 石头 | 备案号 : 蜀ICP备2021021200号-2 | 友情链接 : APP开发者工具