Apache_BenchMark API Test Tool

Apache_BenchMark API Test Tool

一、前言

  • 项目说明:本项目使用Apache_BenchMark(一下简称ab)测试工具,对单个接口进行压测,并输出测试结果。
  • 最终效果:在表格中编写单接口压力测试用例,一键执行,逐次对表格内所有接口遍历执行,并输出测试报告。
  • ab官网地址:http://httpd.apache.org/docs/2.0/programs/ab.html

二、环境

  • python环境:python 3.6
  • IDE:PyCharm

三、安装和使用

1、克隆项目到本地

GitHub地址:https://github.com/Zekylly/ApacheBenchmarkAPITestTool

git clone https://github.com/Zekylly/ApacheBenchmarkAPITestTool

PyCharm打开,查看工程目录

2、工程目录说明

在这里插入图片描述

3、根据自己的接口,填写测试用例表格TestPlan.xls
3.1、表格的各字段说明
  • 测试接口名称:填写接口名称,可自定义

  • 接口说明:填写接口名称,可自定义,主要方便标记

  • 测试接口地址:全部地址,包含协议ip或域名端口号接口。格式例如:http://www.baidu.com:8080/get/weather

  • Post数据文件地址:若接口为get请求,该字段为放空。若接口为post接口,则需要传入post数据体,以.json形式存储,默认选取路径为项目/JsonFile/xxxx.json

    {"pageNumber":1,"pageSize": 1,"type":1}
    
  • 头文件类型(选填):即提交数据方式(enctype 属性),规定在发送到服务器之前应该如何对表单数据进行编码。

    描述
    application/x-www-form-urlencoded在发送前编码所有字符(默认)
    multipart/form-data不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
    application/json作为请求头告诉服务端消息主体是序列化的JSON字符串。除低版本的IE,基本都支持。
    text/plain空格转换为 “+” 加号,但不对特殊字符编码。
  • 头文件参数:token等相关参数填写处。

  • 测试时长(秒):与测试次数二选一,表示多用户并发测试持续时长

  • 测试次数(请求总数):与测试时长二选一,表示多用户并发测试的总次数

  • 并发数级别(|隔开):设置vu并发数,直接填写并发用户数,例如:10,表示程序将创建10个虚拟用户。若需要测10、20、50、100、1000个并发用户,则只需使用”|“隔开即可,例:10|20|50|100|1000

  • 是否保持用户连接(-k,选填,默认否):Use HTTP KeepAlive feature。将http请求保持长连接,该配置可能会影响性能结果数据

  • 日志级别(1~4,选填,默认为1):测试过程中的日志级别。1为默认,最少日志量,4为最高,最多日志量

  • 间隔时长(不同并发的间隔时间,单位:秒):单多个并发数级别时,或有多个单接口串联测试时,为避免每次的测试互相干扰,设置每次测试完成后,该测试工具将time.sleep()的方式来等待服务器”降温“。

3.2、get 请求

需保证测试用例表格中”测试接口地址的“的准确性,同时”Post数据文件地址“字段放空

3.3、post 请求

2.3.1、编写.json文件放置目录:项目/JsonFile/xxxx.json,其余参考测试用例表格中”Post数据文件地址
在这里插入图片描述

4、执行测试

编写完成工程表格用例后,进入工程目录,执行main.py,执行过程中,查看PyCharm的Console输出栏,将输出执行日志。
在这里插入图片描述

5、查看结果

打开./ReportFile目录下的测试报告,并使用浏览器打开,即可查看。

5.1整体报告

在这里插入图片描述

5.2测试命令及Post数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2AGv6iAb-1621299782817)(./ReadMe/image-20210517162930333.png)]

5.3关键数据结果

在这里插入图片描述

6、注意事项
  • 为避免接口报错而无法知晓,编写计划调试时,请先试用日志级别3进行测试,测试完成后,在./ResultFloder/目录下找到对应的测试结果,打开查看是否得到了正确的服务器Response。
  • 测试报告中所有数据,均取自在工程各目录下各文件
  • 尽量使用.xls格式文件编写TestPlan
  • 该项目当前仅可测单接口,多接口数据参数化串联测试暂未实现
  • 本项目依赖于ab工具测试结果,更多知识及参数请参考:
    • https://www.drupal.org/docs/develop/profiling-drupal/apache-bench-ab
    • https://www.cnblogs.com/gumuzi/p/5617232.html
    • http://www.devside.net/wamp-server/load-testing-apache-with-ab-apache-bench
    • http://www.it1352.com/708197.html
    • https://www.w3ctech.com/topic/1746
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值