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并查找“个人信息”部分即可。 行之间列出了所有必填字段。 %====================================
56 -营销总监绩效考核表1
数据介绍 本文分享一份全国范围的土地利用分类数据。 该数据来源于Esri,以Sentinel-2卫星的遥感图作为数据源,并结合人工智能土地分类模型制作而成。 该数据的时间范围是2017年-2023年,空间分辨率是10米,地理坐标系是WGS-84。
软件测试
质检员考核评分表
技术路线图的设计对于基金本子的质量起着决定性的作用,在具体设计时候,往往需要有一定的套路和创意。本资源汇总了海量的经济管理类技术路线图,共大家参考,学习,使用。适用于国自科,社科,本硕博毕业论文等。
1.资料名称:2021-1998年城投公司数据大全 2.数据指标:序号、公司名称、区域、城投评分、省内排名、最新主体评级、行政等级、 股东背景、股权关系、平台重要性、城投口径、实控人、 总资产(亿元)、 货币资金(亿元)、土地资产(亿元)、受限资产(亿元)、应收账款(亿元) 应收类款项政府占比(%)、营业收入(亿元)、公益性&准公益性主营占比(%)、归母净利润(亿元)、政府补助(亿元)、总资产报酬率(%)、有息债务(亿元)、 短期债务(亿元)、借款(亿元)、债券余额(亿元)、私募债占比(%)、 非标融资(亿元)、资产负债率(%)、债务资本化比率(%) 对外担保比例(%)、EBITDA/利息(倍)、EBITDA全部债务比(%)、授信余额(亿元)、 最新报告期 、申万行业 城投公司是城市建设投资公司的简称,是全国各大城市政府投资融资平台,起源于1991年,承担相应的政府职能,是特殊市场经营体。 此类城投公司大多是不具备盈利能力的,属于事业单位或者国有独资公司性质,他们是通过政府补贴的方式实现盈利,属于带有政府性质的特殊市场经营体。
14 网络地址转换.pptx
网络运维过程中华为交换机经常使用的基础命令
人力资源管理工具绩效考核excel模板04
57 -营业部经理绩效考核表1
汽车疲劳耐久性试验数据采集及应用详解:从路谱采集到技术培训,全面解析的69页指南,汽车疲劳耐久性试验数据采集与应用,汽车耐久路谱采集与应用培训,69页 ,核心关键词:汽车疲劳耐久性试验; 数据采集; 应用; 耐久路谱采集; 培训; 69页。,汽车耐久性试验与路谱采集培训:数据采集与运用指南
48 -收银部经理绩效考核表1
Matlab Simulink下的四分之一车被动悬架双质量(二自由度)模型解析:探究路面不平度对车轮加速度、车身加速度及车轮动载荷的影响,matlab simulink:车辆模型:四分之一车被动悬架的双质量(二自由度)simulink模型。 输入为路面不平度,输出为车轮加速度、车身加速度、车轮动载荷。 需要matlab2016b及以上版本 ,核心关键词:Matlab Simulink; 车辆模型; 四分之一车被动悬架; 双质量二自由度; Simulink模型; 路面不平度; 车轮加速度; 车身加速度; 车轮动载荷; Matlab 2016b及以上版本。,"Matlab Simulink双质量二自由度车被动悬架模型:输出路面与动载荷影响"
基于频域模型的四机两区域风电系统一次调频与风储联合调频技术研究,【有参考文献】simulink 风储调频,风机一次调频,四机两区域系统,风电可变风速一次调频,多风速区域联合,频域模型,有转速,功率特性。 频域模型又称SFR模型,适用于科研。 有需要的来。 优点: 1,风电内部控制详细,具有功率,转速暂态特性,转矩详细信息等。 2,在不同风速下,调频能力对比。 3,加入储能后,系统频率得到显著改善。 风机内部控制详细 ,simulink风储调频;四机两区域系统;风速可变一次调频;多风速区域联合;频域模型(SFR模型);调频能力对比;储能系统改善,基于风储调频的频域模型研究:四机两区域系统的多风速一次调频策略
2022年9月全国大学生英语竞赛A类初赛参考答案
22 -绩效薪酬部经理绩效考核表1
售后服务人员绩效考核表