ABSender是一款改自ApacheBench的轻量级http压力/性能测试工具,除了具备所有ApacheBench的所有功能及性能展现之外,它修复了一处数组越界导致的Segmentation Fault的BUG并支持自定义请求的Path路径、Header头、Cookie值和Post数据的功能。所有这些请求的自定义信息,除了能够从文件中读出并随机组合之外,还支持使用范围模板设置请求信息。
【作者】 公远/陈震(gongyuan.cz$taobao.com/ 100continue$sina.com)
【源码下载】
github地址:https://github.com/100Continue/ABSender
【安装介绍】
ABSender的安装介绍:http://100continue.iteye.com/blog/1720376
【Bug Fixed】
1. 修复Apache AB在统计“Sorted on total connect times”的时候,会出现由于数组越界而引起的Segmentation fault的问题。详情请点击:http://100continue.iteye.com/blog/1337347
【New Feather】
1. 自定义请求信息:(以下参数可以随机组合使用)
参数设置:
Options are:
-J pathfile File containing data in request path
-j pathfile File containing data in request path and in Range Mode
-O cookiefile File containing data in request cookie
-o cookiefile File containing data in request cookie and in Range Mode
-L headerfile File containing data in request header
-l headerfile File containing data in request header and in Range Mode
-Y multipostfile File containing mulit post data to POST
-R multipostfile File containing mulit post data to POST and in Range Mode
举例介绍:
a. 自定义Path路径:
1)从文件中读入所有Path路径并随机访问:
ABSender -c 1 -J /pathfile "http://127.0.0.1:8080/"
2) 文件内容及格式:
4
/index1.html
/index2.html
/index3.html
/index4.html
3) 结果分析:
ABSender将会随机发出以下4个路径的请求:
GET /index1.html HTTP/1.0
GET /index2.html HTTP/1.0
GET /index3.html HTTP/1.0
GET /index4.html HTTP/1.0
b. 自定义Path路径+范围模式:
1)从文件中读入所有Path路径并采用范围模式随机访问:
ABSender -c 1 -j /pathfile "http://127.0.0.1:8080/"
2) 文件内容及格式:
1
/index[1-5].html
3) 结果分析:
ABSender将会随机发出以下4个路径的请求(请求头其他数据未列在下面):
GET /index1.html HTTP/1.0
GET /index2.html HTTP/1.0
GET /index3.html HTTP/1.0
GET /index4.html HTTP/1.0
c. 自定义Post Data数据的请求:
1)从文件中读入所有Post Data信息并随机访问
ABSender -c 1 -R /postdatafile "http://127.0.0.1:8080/index.html"
2)文件内容及格式:
1
this is the post data[1-3] xx
3) 结果分析:
ABSender将会随机发出以下2个请求:
POST /index.html HTTP/1.0
Content-length: 26
Content-type: text/plain
Host: 127.0.0.1:8080
User-Agent: ABSender
Accept: */*
this is the post data1 xx
POST /index.html HTTP/1.0
Content-length: 26
Content-type: text/plain
Host: 127.0.0.1:8080
User-Agent: ABSender
Accept: */*
this is the post data2 xx
2. 提供关闭计算连接时间和单位时间内请求处理百分比的功能
当ApacheBench和ABSender发出请求数较多时(达到5千万次请求),统计连接时间和单位时间内请求处理百分比的功能将消耗较长的时间。因此提供了关闭该计算的方法。
参数设置:
-M Do not show connection times and percentage of the request served within a certain time.
【沉淀】
由于自定义请求头的功能需要从文件中读入自定义信息及在每次请求发出前需要重新组织请求内容,因此必然存在性能上的损耗。本次优化主要在以下三方面:
1. 尽量将所有文件读入操作及类型转换操作等放到压力/性能测试开始之前。
2. 对于重新组织请求内容的步骤,采用sprintf方法,减少内存拷贝操作。
3. 考虑“内存对齐”问题,因此将数据结构设置成以下方式,将相邻操作的数据放在一起。从而提高CPU效率。
/* to store the scope likes: pre[1-1000]middle[20-30]after,
{min:1 extent:999 content:middle} {min:20 extent:10 content:\0}*/
typedef struct {
char *content;
int min;
int extent;
}scope_t;
/* to store the range info likes: pre[1-1000]middle1[20-30]middle2[7-10]after,
pre: pre
scope_s[0] = {min:1 extent:999 content:middle1}
scope_s[1] = {min:20 extent:10 content:middle2}
scope_s[2] = {min:7 extent:3 content:\0}
after: after */
typedef struct {
char *pre;
scope_t scope_s[_MAX];
char *after;
int count;
}range_t;
【后续】
后续将发布ABSender与ApacheBench的性能对比。更多信息,敬请关注本博客后续介绍
分享到:
相关推荐
Apache Bench是Apache HTTP Server自带的一款简单HTTP请求性能测试工具,而ABSender在它的基础上进行了功能扩展和优化,提供了更多高级特性,使得用户能够更加精确地模拟真实场景,评估服务器在高负载情况下的性能...
5. **性能测试**:通过模拟多个并发请求,评估服务器的负载能力和响应时间,帮助优化系统性能。 6. **安全性测试**:可能包含一些基础的安全测试功能,如SQL注入或跨站脚本(XSS)测试。 在"ABSender-master"的源...
现代简历样式字母 这个项目的目标是为LaTeX(和... 如果这些数据不会持续变化, absender.lco打开文件absender.lco并查找“个人信息”部分即可。 行之间列出了所有必填字段。 %====================================
setting.xml文件,修改Maven仓库指向至阿里仓
基于java的玉安农副产品销售系统的开题报告
dev-c++ 6.3版本
基于java的项目监管系统开题报告
基于springboot多彩吉安红色旅游网站源码数据库文档.zip
毕业设计&课设_基于 AFLFast 改进能量分配策略的毕业设计项目,含 Mix Schedule策略设计及测试结果分析.zip
基于springboot办公用品管理系统源码数据库文档.zip
C++调用qml对象Demo
非常漂亮的类Web界面的Delphi设计54ed7-main.zip
VB SQL车辆管理系统是一款基于Visual Basic(VB)编程语言和SQL数据库开发的综合车辆管理工具。该系统集成了车辆信息管理、驾驶员信息管理、车辆调度、维修记录、数据存储与检索、报告生成以及安全权限管理等多个核心功能模块。 源代码部分提供了详细的开发流程和实现方法,涵盖了从数据库设计、界面设计到事件驱动编程、数据访问技术和错误处理等关键技术点。通过该系统,用户可以方便地录入、查询、修改和删除车辆及驾驶员信息,实现车辆信息的实时更新和跟踪。同时,系统还支持生成各类车辆管理相关的报告,帮助用户更好地掌握车辆运营情况。 系统部分则采用了直观易用的用户界面设计,使得用户能够轻松上手并快速完成车辆管理工作。系统还具备强大的数据处理能力和安全性,通过数据备份和系统升级优化等功能,确保数据的完整性和系统的稳定运行。 总体而言,VB SQL车辆管理系统是一款功能全面、易于操作且安全可靠的车辆管理工具,适用于企业和个人进行日常车辆运营和管理。无论是车辆信息的录入、查询还是报告生成,该系统都能够提供高效、便捷的服务,是车辆管理工作的理想选择。
AutoSAR基础学习资源
基于springboot英语学习平台源码数据库文档.zip
数据集,深度学习,密封数据集,马体态数据集
基于java的数字家庭网站开题报告
podman使用国内源镜像加速器
基于springboot+web的留守儿童网站源码数据库文档.zip
基于springboot的智能宾馆预定系统源码数据库文档.zip