一款开源的自动化测试工具curl-loader

最近发现一款新的性能测试工具,觉得对其进行一番研究和学习,下面是我从各个网站收集到的资料:
  第一章:安装介绍
  本期将推开性能测试工具LoadRunner,去研究一款开源性能测试工具Curl-Loader,关于两者的优劣我也不大清楚,不过对于Lr的强大,相信大家是领教多了,而理解性能测试的原理的话,对于Curl-Loader就可以溢于言表了。前者可以做录制,且业务逻辑复杂的流程;而后者更倾向于压力面的扩展,对于虚拟用户数的个数在单个机器上可以上到10000个以上。
  由于该工具运行于Linux平台,所以安装过程还是比较麻烦的,我们来看看Curl-Loaderde的安装如下:
  1、官方下载地址如下所示:
  http://sourceforge.net/projects/curl-loader/files/
  2、在官方网站上查看readme文档,以及FAST START文档,根据文档提示在安装之前先首先要了解系统是否具备了安装Curl-Loader的相关包,如下所示:

  openssl以及开发包这两个包是必须要安装的,一句官方提供的文档。
  3、具体安装方法如下:
$tar zxfv curl-loader-.tar.gz
$cd curl-loader-
$make
  安装完成之后在主目录中会生成curl-loader可执行文件,主要通过该命令来执行压力测试。
  4、根据FAST START文档的说明,执行压力测试的过程可以通过conf-examples目录下的示例来解读,这里我们以10k.conf为例,配置如下:

##### GENERAL SECTION

BATCH_NAME= 10K //这里是配置测试对象的名称
CLIENTS_NUM_MAX=10000 //这里是配置最大虚拟用户数
CLIENTS_NUM_START=100 //这里是配置初始化并发虚拟用户数
CLIENTS_RAMPUP_INC=50 //这里是配置每次加载用户数
INTERFACE =eth0
NETMASK=16 //子网掩码位数
IP_ADDR_MIN= 192.168.1.1 //起始ip地址
IP_ADDR_MAX= 192.168.53.255 //最后的ip地址范围
CYCLES_NUM= -1
URLS_NUM= 1

##### URL SECTION

URL=http://localhost/index.html //配置URL地址

URL=http://localhost/ACE-INSTALL.html

URL_SHORT_NAME="local-index"
REQUEST_TYPE=GET
TIMER_URL_COMPLETION = 5000 # In msec. When positive, Now it is enforced by cancelling url fetch on timeout
TIMER_AFTER_URL_SLEEP =20
  配置完成之后就在命令下执行命令:./curl-loader -f 10K.conf,然后就开始执行压力测试。
  通过以上这个示例配置文件,可以清楚的理解这个就类似于LoadRunner中的场景设置页面,其实原理都一样。

 5、测试结果,在执行以上测试指令后,在命令窗口中就显示如下所示,具体的动态测试数据如下:

  在执行压力的时候显示如上页面,具体的参数就不一一详细介绍了,具体请参考官方FAQ文档,因为我也没有读完,只了解大概。
  在测试结束之后将会生成一系列的日志文件,详细测试信息还可以查看日志文件。
  第二章:学习视频
  1)开源性能测试工具Curl-Loader快速实战 - 1
  2)开源性能测试工具Curl-Loader快速实战 - 2
  3)开源性能测试工具Curl-Loader快速实战 - 3
  4)开源性能测试工具Curl-Loader快速实战 - 4
  开源性能测试工具Curl-Loader快速实战 (1)
  在线观看地址:http://www.boobooke.com/v/bbk1808
  下载地址:http://www.boobooke.com/v/bbk1808.zip
  开源性能测试工具Curl-Loader快速实战 (2)
  在线观看地址:http://www.boobooke.com/v/bbk1809
  下载地址:http://www.boobooke.com/v/bbk1809.zip
  开源性能测试工具Curl-Loader快速实战 (3)
  在线观看地址:http://www.boobooke.com/v/bbk1835
  下载地址:http://www.boobooke.com/v/bbk1835.zip
  开源性能测试工具Curl-Loader快速实战 (4)
  在线观看地址:http://www.boobooke.com/v/bbk1836
  curl-loader配置文件说明:
01

##### GENERAL SECTION

02
BATCH_NAME= 10K-clients #批处理名称
03
CLIENTS_NUM_MAX=10000 #虚拟客户端最大数量
04
CLIENTS_NUM_START=100 #虚拟客户端初始数量
05
CLIENTS_RAMPUP_INC=50 #虚拟客户端一次递增的数量
06
INTERFACE =eth0 #选择使工作的网卡
07
NETMASK=255.255.0.0 #子网掩码
08
IP_ADDR_MIN= 192.168.1.1 #模拟的ip开始地址段
09
IP_ADDR_MAX= 192.168.53.255 #模拟的ip结束地址段
10
CYCLES_NUM= -1 #每个客户执行的周期数不限
11
URLS_NUM= 1 #每个客户得到单个url
12
13

##### URLs SECTION

14
15
URL=http://localhost/index.html #待测目标的url
16
URL_SHORT_NAME="local-index" #这个名字是url的代名词将被出现在负载开始时的
17
REQUEST_TYPE=GET #请求类型
18
TIMER_URL_COMPLETION = 0 #url将使用http GET方法被提取且在时间上不受限制
19
TIMER_AFTER_URL_SLEEP = 0 #在完成一个url请求后进行下一个url请求的协议重定向的间隔时间
  运行curl-loader的基本命令为:
  curl-loader -f config.conf
  ,这个config.conf就是上面的配置文件具体的设置需要根据需要,我根据我的需求一开始把CLIENTS_NUM_MAX=设置为2000,CLIENTS_NUM_START为100,CLIENTS_RAMPUP_INC为50,意思就是说一开始的虚拟客户端就是100个,然后以每秒50个用户的速度递增一直达到最大值2000。
  因为是一开始运行测试,所以我没有设置的很大。为什么初始值不一开始就设置成2000呢,这个道理很简单,1,容易使被测的系统崩溃;2,不符合真实的环境;从这两方面考虑,所以要让压力的递增像一个爬坡的曲线慢慢的到到最大客户端值,也就是最大的压力然后保持一个稳定的范围,最后得到测试的参数再进行分析。在结束测试的时候我个人认为不用慢慢的递减压力,可以一下子把压力撤掉。
模拟的用户数量越多,占用的IP地址就越多,所以设置用户数量的时候要看IP_ADDR_MIN和IP_ADDR_MAX这两个参数间的IP个数是否满足,不满足的话要做适当的修改,可以大于等于,但不能小于,否则在运行
  #curl-loader -f config.conf
  的时候就会提示让修改配置文件参数的错误
  待测目标改成服务器端的IP地址即可,其他的暂时不用修改。
  在运行curl-loaderl之前最好要修改一下系统打开文件的最大值,因为用的是Linux系统而Linux系统默认可以打开最大的文件数为1024,所以要修改大点,一般要超过CLIENTS_NUM_MAX的值,修改命令为:
  #ulimit -n 10000
  注:后面的数值越大越好,最好是远远超过curl-loader虚拟的客户端数量;如果不修改就会出现the current limit of open descriptors for the shell (1024)类似的错误
  好了,终于不报错了,可以执行curl-loader运行命令了,没错,这样可以运行了,但还不是最好的状态,最好在加上一些运行的命令参数这样才能更大的发挥curl-loder的作用,也是测试结果更为准确
  下面就是各个参数的说明,是在官方网站找的,我全部按照自己的意思翻译了,这么简单的事情我Google,百度了半天竟然没有一个中文资源可以参考
  -c[onnection establishment timeout, seconds] :设置连接超时的时间
  -d[etailed logging; outputs to logfile headers and bodies of requests/responses. Good for text pages/files] :把header和bodies的反应等详细的情况输入到日志中。
  -e[rror drop client. Client on error doesn't attempt to process the next cycle] :如果虚拟客户端出现错误则在下一次的周期请求中不再尝试。
  -h[elp] :帮助
  -i[ntermediate (snapshot) statistics time interval (default 3 sec)] :设置最后一段状况的时间,默认是最后3秒。
  -f[ilename of configuration to run (batches of clients)] :设置想要加载的配置文件
  -l[ogfile max size in MB (default 1024). On the size reached, file pointer is rewinded(回滚) :设置日志文件的最大容量,默认是1024MB,当达到最大值时文件将会回滚覆盖从最旧的日期。
  -m[ode of loading, 0 - hyper (the default, epoll () based ), 1 - smooth (select () based)] :两种系统调用方式,epoll要优于select,但是也要测试为目的去选择。
  -r[euse connections disabled. Closes TCP-connections and re-open them. Try with and without]:不再重试继续连接,每次重试连接之前都会关闭之前的连接。防止连接缓存
  -t[hreads number. Use it for high loads and when running at SMP/multi-core HW] :用于高负载并且还是多核的cpu时,可以分配线程数。
  -v[erbose output to the logfiles; includes info about headers sent/received] :把headers的收发的详细情况输出到日志中。
  -u[rl logging - logs url names to logfile, when -v verbose option is used] :url日志,把url名字记录在日志文件中,当用-v选项时会被显示出来。
  -w[arnings skip] :跳过警告。
  可能有人觉得这么简单的英文直接自己看帮助或者man手册不就行了,太多的道理我也不想多说,我只想说翻译成中文这很重要!
  根据我的需求,首先-f指定配置文件,-l 10240MB增大日志文件,-m 0 选择epoll()调用方法这两种方法是在被测系统的内核里设置的所以这个选择最好要跟被测系统中的内核的选择一致这样才能测试的更准确,-r每次都是重新建立连接,-t 2 我安装curl-loader的机器是双核的这样可以更充分的利用系统资源使机器发挥出更大的作用,-u 记录url到日志中。所以我的curl-loader的运行命令就是:
  #curl-loader -f /home/user/10K/10K.conf -l 10240MB -m 0 -r -t 2 -u
  你会看到屏幕刷刷的翻动着,到后面会有一个最后三秒运行和总curr的状态
  如果想要结束测试ctrl+c就可以了
  下一篇我会写这些状态参数和结果的意义
  简单总结下我学习上面这些东西的过程:
  首先是在Google和百度上搜索中文资料,毕竟中文更易快速的理解,但是很失望,中文关于curl-loader的有价值的资料很少,大部分都是介绍怎么去安装,连配置文件的各个配置都没有一个能完全说明的,收获最多的就是看了网上流传的所谓的一个XX老师的教学视频,但是看到最后发现也不靠谱,curl-loader的测试结果里有个很重要的参数CAPS硬是给人胡说着解释出来了,当时就怀疑,随即到官网查看还真不是他说的那个意思,所以要怀疑一切所谓的权威,最好到官方的网站去找答案,即使是英文的。
  血汗泪的教训啊~,所以勇敢的站起来去大胆的怀疑权威,细心的去认证吧!
  还有,因为是刚开始写博客还搞不懂怎么把代码调成高亮显示,后面会改成高亮的那种

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-05 12:14:58

一款开源的自动化测试工具curl-loader的相关文章

几款开源的ETL工具及ELT初探

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的过程.ETL 是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去. 我们在下方列出了 7 款开源的 ETL 工具,并讨论了从 ETL 转向"无 ETL"的过程,因为 ELT 正迅速成为现代数据和云环境的终极过程. 注:原文包含 11 项

十款开源的数据库管理工具

任何Web软件和应用程序都需要强大的数据库来做后盾,目前,网上有无数个数据库管理工具,而开发者选择一款适合自己的尤为重要.本文给开发者介绍了10款免费的数据库管理工具,开发者可以使用它们进行SQL操作.多链接.多数据库引擎操作等等. 1.Open KeyVal Open KeyVal是一款开源免费的键值数据库管理工具,基于Web,并且基于PHP开发,其目标是用最简单的方法来管理Web应用程序数据.用户只需发送一个POST请求就可以存储任何类型的数据,它是以JSON的格式来响应请求的. 2.DBV

推荐四款开源在线调查工具

现在有各种各样的在线调查工具,比如 SurveyGizmo, Polldaddy, SurveyMonkey 或者是 Google Forms,但如果想要更多的控制权,个性定制收集的数据就有必要用到开源的在线调查工具.以下介绍的 4 款不同类型的开源在线调查工具,简单的.复杂的.适配移动端的都有. LimeSurvey LimeSurvey 拥有一个调查工具必要的所有功能,可以做一些简单的调查和投票,如果想要做更复杂一点的就需要分开多个页面.LimeSurvey 支持 80 种语言,提供 29

基于业务的Web自动化测试工具—Sahi

谈及开源Web 自动化测试工具,相信很多人立刻会想到Selenium.本文给大家介绍的是另一款开源Web 自动化测试工具Sahi.Sahi的网站上有关于与Selenium的对比,不过这不是我们今天探讨的主题.这篇文章的主要目的是向读者简单的介绍一下Sahi并分享一下个人使用Sahi测试Dojo应用的经验,希望对大家能有所帮助. 1. Web2.0应用测试的困境 在开始介绍Sahi之前,我们一起来看看在开发Web 自动化测试(特指Web 2.0应用)时常面临的两大技术问题. 页面元素的识别 根据个

超好用!5款开源的移动自动化测试工具

如今,移动应用在企业的地位越来越重要,消费者对移动设备的要求也越来越高.为适应这一需求,测试团队必须在移动设备推出市场之前,对其性能进行一系列的评估和测试.然而,这是一个既耗时又耗资源的工作,尤其移动设备的自动化测试还非常复杂. 在现已出现的开源移动自动化测试工具中,我总结出5款最实用的,希望它们对你有帮助(部分可同时在iOS和Android设备上使用): 1.Appium Appium是一款用于自动化本机.移动Web和混合应用程序的开源工具.可在iOS和Android上使用. 2.Calaba

Sahi基于开源Web应用自动化测试工具示例应用

Sahi 支持 HTTPS 并且独立于 Web 站点,简单小巧却功能强大.它相对于 Selenium 等自动化测试工具,在动态 ID 元素查找和隐式页面等待处理等方面具有一定的优势.选择 Sahi 工具来实现具体 Web 项目的自动化测试是一个很不错的选择. 随着 Web 技术和互联网的发展,Web 应用产品越来越丰富,基于 Web 页面测试的需求与日俱增.在当前全球软件都在追求高效.敏捷的开发模式的大背景下,Web 自动化测试成为了新一波技术探讨和研究的热潮.因为传统的手工测试不仅效率低,并且

《手机测试Robotium实战教程》—第1章 1.3节移动端自动化测试工具的选择

1.3 移动端自动化测试工具的选择 之所以需要选择,是因为可选项太多了,不同的平台,会有很多不同的自动化测试工具供选择,其中既有商业性的收费工具,也有开源免费的自动化测试工具. 这本书的主题Robotium就是其中一种开源的自动化测试框架,在正式展开前,先看看当下还有哪些在Android测试方面比较常用的测试框架可供选择. 1.3.1 Appium Appium也是一种自动化测试框架,可以用来测试natvie.hybrid和mobile web APP,Appium最吸引人的一点是,它既支持An

《手机测试Robotium实战教程》——第1章,第1.3节移动端自动化测试工具的选择

1.3 移动端自动化测试工具的选择之所以需要选择,是因为可选项太多了,不同的平台,会有很多不同的自动化测试工具供选择,其中既有商业性的收费工具,也有开源免费的自动化测试工具. 这本书的主题Robotium就是其中一种开源的自动化测试框架,在正式展开前,先看看当下还有哪些在Android测试方面比较常用的测试框架可供选择. 1.3.1 AppiumAppium也是一种自动化测试框架,可以用来测试natvie.hybrid和mobile web APP,Appium最吸引人的一点是,它既支持Andr

非常有用的8款网站速度测试工具

网站的加载速度是能够决定网站成败的重要因素,尤其值得站长特别关注.而原因,很简单,因为没有人会愿意为了打开一个网页而等老半天,再换句话说,要是你的网站打开速度很慢,那么可能将流失大量的访客,甚至会出现多米诺效应的不良影响,因此,了解自己网站加载速度是非常重要的.而下面我就向大家推荐8款非常有用的网站速度测试工具,这能让你更加全面的了解自己的网站性能. PageSpeed Insights 首先要介绍的这款测试工具是出自google,这款工具能够通过分析网页的内容来提供网站加载速度优化建议. pi