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的性能对比。更多信息,敬请关注本博客后续介绍
分享到:
相关推荐
ABsender web测试工具,包括post、get
ABSender,apache bench的改进版,更方便做压力测试,apr、apr-util是安装ABSender所需要的库文件
现代简历样式字母 这个项目的目标是为LaTeX(和... 如果这些数据不会持续变化, absender.lco打开文件absender.lco并查找“个人信息”部分即可。 行之间列出了所有必填字段。 %====================================
基于matlab实现的相移光纤光栅(FBG.rar
配套设备仪器用
数据来源:中国电力统计NJ-2021版
基于matlab实现烟花寻优算法,自己编的.rar
数据来源:中国电力统计NJ-2021版
俄罗斯方块游戏最初是由俄罗斯人阿列克谢·帕基特诺夫在1984年开发的休闲小游戏,曾几何时它创造了无可匹敌的商业价值,影响了一代休闲小游戏的开发与产业链。随着信息时代科技时代的不断发展和变化,计算机已经普及到每一个人的生活中,在繁忙的工作生活中,这一类休闲小游戏给人们带来了些许的放松。 这篇论文详细的描述分析了经典传统的俄罗斯方块实现的基本思路和一些基本游戏规则,在此基础之上,更进一步地开发出俄罗斯方块的创新创意模式,在经典游戏基础上开发出随着分数增高而等级增高难度加大的模式,并且创意性的开发出可操控方块颜色变换的模块,并且增添了游戏声音和音乐模块。本论文对上述功能给出了具体实现流程、详细描述、和一些源代码。 本论文阐述了俄罗斯方块游戏的开发和发展历史、开发此游戏的意义以及开发环境并根据软件工程开发软件和java编写程序的相关知识,对程序的需求分析、概要设计、详细设计与实现、调试运行进行了一系列描述。 此次程序设计是在Microsoft Windows 7系统下,以Java为开发语言,在Eclipse开发平台上进行游戏的设计与实现。
一个基于ArkTS开源的鸿蒙next版的物流APP源代码
数据来源:中国人口与就业统计NJ-2023版
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
limbox86pcemulator_241983-3.apk
数据来源:中国劳动统计NJ-2023版
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
数据来源:中国人口与就业统计NJ-2023版
2023年华数杯全国大学生数学建模大赛的大数据B题论文全文,文中框架完整,内容较为详细,此论文获得华数杯三等奖,为了避免二次外传,本文设置了水印,请各位注意文章隐私,同时由于限制,在此并未上传相关代码,若需要代码或答疑等服务,请私聊作者。 日常生活中五彩;缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。然而,传统的人工配色存在一定的局限性,如主观性强、效率低下等。因此,研究如何通过计算机方法来实现不透明制品的配色具有重要意义。 以下是部分题目 光通过物体传播有吸收、反射和透射三种方式。对于不透明制品来说,大部分光线会被其表面吸收或反射。吸收和反射的光线在经过透明度等校正后按波长分解成不同的颜色成分,形成光谱图。该光谱图通常由 400--700nm 波段的各色光组成。为简化计算,最终配色后的颜色的反射率以 20nm 为间隔的光谱数据来表示。对于不透明材料而言,吸收系数 K/散射系数 S 的比值与反射率 R 之间存在一定关系,具体请参考文献【1】《计算机配色理论及算法的研究》中的 K-M光学模型。基于光学模型得到的颜色参数,可应用于色
附件是 华为 OD 机考攻略_加强版,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!
数据来源:中国劳动统计NJ-2023版
数据来源:中国电力统计NJ-2021版