由于工作中时常遇到web server/cache的开发工作。一旦做出一些改动,或者添加一些功能,除了功能测试(比如设计一些测试用例)、查看debug信息之外,还需要对整个系统做全面的测试。反向代理服务器和缓存,往往承载着大量的并发请求,对于稳定性的要求很高。这就需要一款比较好的benchmark来进行测试。
Web Polygraph是几年前专门为缓存服务器、代理服务器等设计的测试工具。它具有比较完整的测试用例(比如专门为正向代理和反向代理的测试用例)。另外,它还有一套专门的description language (PGL),可以让测试者来定制测试用例。它的测试结果的呈现也是比较强大的,可以在测试的时候指定log路径,并对数据进行分析和整理,然后通过web页面的方式呈现。
因为是第一次使用,对于polygraph的语言和配置不是太熟。安装好以后,就直接用了两个虚拟机来跑反向代理的测试用例(WebAxe-4)。第一个虚拟机上面跑了nginx,同时作为反向代理和缓存服务器来使用。第二个虚拟机上面跑polygraph-server和polygraph-client。为什么同时有server和client呢?因为polygraph会模拟用户(client)和源站(server)的行为,polygraph-client会生成一些特定的请求,通过proxy发送给源站,而模拟源站的polygraph-server则会根据配置里面指定的对象大小,生成响应回复给client。client和server一般用同一个配置文件,但是它们用到配置文件的不同部分。另外,配置文件里面有可能会通过#include来调用其他的配置文件,这个时候就需要指定--cfg_dirs参数,否则就会报错。正常情况下,server、client和proxy应该在不同的服务器上,这里为了方便举例,把server和client放在一起。
具体的操作如下:
1. 把原来的配置文件 WebAxe-4.pg复制了一份到WebAxe-4-test.pg,然后修改里面的参数
TheBench = {
client_side = {
addr_space = [ 'lo::10.101.1-10.1-250/16' ]; //ip范围可以根据peak request rate再作调整
hosts = [ '192.168.31.129' ]; //虚拟机2的IP
};
server_side = {
hosts = [ '192.168.31.129:9090' ]; //虚拟机2的IP
};
proxy_side = {
hosts = [ '172.16.101.32:8080' ]; //虚拟机1的alias IP
};
};
//以下部分可以按照具体情况来配置
TheBench.peak_req_rate = 500/sec;
rate FillRate = 50%*TheBench.peak_req_rate;
size ProxyCacheSize = 500MB;
size WSS = 1GB;
2. 根据上面的配置,client side会自动生成多个agent(假象用户),每个agent会根据情况绑定1个或多个IP,这些IP就是在addr_space里面指定的(其实就是拿这些ip绑定一些alias NIC)。我又给proxy side配置了一个alias,绑定在虚拟机1的eth0(即192.168.31.128的NIC)上。注意:虽然这两个虚拟机的eth0是在同一个网段,因为使用了alias NIC,需要对alias IP做路由配置,这样10.101.0.0/16网段的agent才能和172.16.101.32建立TCP连接。具体的做法,就是使用route命令来生成相应的路由规则。
3. 在虚拟机1上的nginx(即被测试的反向代理缓存服务器)上面配置,注意要把upstream xxx {}里面的server(即源站)配成虚拟机2的IP;proxy_cache_path命令的参数max_size也需要和polygraph的size ProxyCacheSize一样。配置好了以后,启动nginx。
4. 启动polygraph-server程序,指定--config参数,--cfg_dirs参数和--log参数。如果需要看更多的信息的话,可以设定--verb_lvl参数。
5. 启动polygraph-client程序,跟polygraph-server基本一样。
6. 正常的话,应该可以看到一些output信息。可以参考http://www.web-polygraph.org/docs/reference/output/console.html。把结果生成html页面,只需要使用polygraph-reporter命令。
分享到:
相关推荐
在使用web-polygraph为代理,缓存软件做测试的时候,发现官方提供的polygraph-4.3.2代码功能中,配置文件没法配置user-agent和添加自己想要添加的头,于是对代码修改之,使其能使用user_agent和add_headers两个配置...
描述用webpolygraph进行高负载均衡测试时所用到的知识
polygraph 参考手册+用户手册 很实用的web压力测试工具
WEB压力测试工具,linux下的版本polygraph-4.3.2-src.tar
siege是一款用于web压力测试的工具。
很好的web教程 适合初学者 入门很快 上手很快 高效简洁
测谎仪分析网页,并警告你不诚实的文章。 ... 许多新闻工作者和作家使用过分耸人听闻,夸张或彻头彻尾的欺骗性标题,以引起人们的注意。 该扩展程序会分析标题,...它也是开源的:http://bit.ly/2j4zG6m 支持语言:English
Tracking-eye-movements-in-human-polygraph-test
语言:English 测谎仪会分析网页并警告您有关不诚实的文章。 ... 许多新闻工作者和作家使用过分耸人听闻,夸张或彻头彻尾的欺骗性标题,以引起人们的注意。 该扩展程序会分析标题,...它也是开源的:http://bit.ly/2j4zG6m
笔记 几个js文件使用require; 为了将它们合并到扩展中,必须使用browserify将它们“捆绑”。 npm install browserify browserify FILE.js > bundled\FILE.js 在html中使用文件的捆绑版本。
伪造数字签名添加器.exe
语言:English (United States)更快,更准确地介绍整个网络杀链链 Lacework Polygraph:trade_mark:是业界的第一个云工作负载安全性的零触摸平台Lacework Polygraph:trade_mark:自动创建云操作的深度时间基线,以便...
在本文中,使用人工神经网络 (ANNs) 从最简单的信息形式(自然文本)开始,到更复杂的经典密码类型(周期性多字母系统和测谎系统),介绍了对经典密码...具有四度的键顺序)。... 这可以通过使用三个级别的分类来完成。...
当代关于机器学习部署的讨论和分歧,尤其是在刑事司法环境中,没有可预见的结局。 然而,开发人员、从业人员和监管机构可以有益地回顾一百年前在美国首次引入测谎仪时提出的类似论点。 虽然测谎设备和机器学习以截然...
有人一直在吃我的饼干! 值得庆幸的是,Arduino在这里可以帮助您找到谁。