性能/压力测试工具Apache ab修改系列:Part3——从文件中读取压力/性能测试的 url、header、cookie信息
需求:
修改Apache AB 工具,使其能够从文件中读取压力/性能测试的 url、header、cookie信息,并采用这些信息进行随机组合访问的压力和性能测试。
?
解决方案:
1. 如何从文件中读取url、header、cookie信息,并保证该操作不影响Apache AB的性能及数据统计?
首先,我所考虑的方法是,在ab读取设置参数的时候,如果配置为需要从文件中读取url、header、cookie等信息,则立即将这些信息读入到内存中备用,这样就能在Apache AB开始压测前完成所有的数据准备工作。
?
?
?
?之后,对write_request函数进行修改,在其最前面添加如下代码:
?
static void write_request(struct connection * c){/* edit by gongyuan.cz start *//* set path */if(pathNum){int index = random() % pathNum;path = apr_pstrcat(cntxt, pathName[index], NULL);/* set fullurl */if(isproxy){fullurl = apr_pstrcat(cntxt, fullurl, pathName[index], NULL);}}/* set cookie */if(cookieNum){int index = random() % cookieNum;cookie = apr_pstrcat(cntxt, "Cookie: ", cookieName[index], "\r\n", NULL);}/* set header */if(headerNum){int index = random() % headerNum;hdrs_cp = apr_pstrcat(cntxt, hdrs, headerName[index], "\r\n", NULL);}/* set request */if(0 != pathNum || 0 != cookieNum || 0 != headerNum){set_request();}/* edit by gongyuan.cz end */? 最后,经过以上的修改之后,修改版的Apache AB工具,不仅具备之前的所有功能,还具备从文件中读取url、header、cookie等信息并随机组合之后进行压力/性能测试。
修改版的Apache AB与原版Apache AB的性能及数据统计对比报告,在之前博客:
性能/压力测试工具Apache ab修改系列:Part1--与Apache AB原版对比测试报告
?中有详细的介绍。
?
ok,性能/压力测试工具Apache ab修改系列:Part3 介绍完毕,欢迎拍砖。转发请备注转自:100continue.iteye.com。 谢谢。