As long as alive, every day is full of hope

一个B/S架构的页面性能测试框架(转载)

上一篇 / 下一篇  2009-04-30 09:21:01 / 个人分类:测试知识

之前做过一个框架是由一个excel表来控制性能监控的运行以及运行参数,并且把测试结果也保存excel表中。这样做的优点在于框架简单,需要投入的时间少。但是,由于对excel的读写操作有着速度较慢,需要多处定位等问题存在,感觉不是很好,因此进行重新做了这个B/S架构的框架。

  我是这样做的:

  1、获取数据:

  使用ruby调用httpwatch,进行修改,已达到自己需要的需求,获取页面性能的数据(整体页面下载时间,各页面元素的下载时间)。这里的修改是要注意的,我就在这遇到过有些页面要采集数据,有些不需要采集,而ie浏览器是不能改变的,因此需要对其做不少修改。

  首先,由于之后一连串的页面监控都需要在一个ie中实现(涉及到登录权限等操作),因此先新建一个ie_init的方法来初始化ie:

def ie_init
@ie = Watir::IE.new
end

  然后把打开url的方法分为2种,其中1个为需要进行采集页面性能数据及页面元素参数的方法open_page(link),1个位不需要进行采集数据,只是普通操作的方法gotourl(link)。其中,open_page这个方法,需要调用httpwatch控件,同时要加入连接数据库的一个文件oracle(自己写,调用dbi.rb即可,主要内容为往数据库插采集下来的数据),代码很简单:

def insert1(字段)
dbh = DBI.connect('DBI:OCI8:SID', 用户名, 密码)
sql1 = sql
      dbh.do(sql1,字段)
dbh.commit
dbh.disconnect

  上面是插入操作,所以需要commit,其他的一些如更新等也需要,其他如select则不需要。

  数据采集是在原有的基础上自己加需要的,我加了很多需要的数据,然后将采集下的数据存入oracle中。

  最后加一个ie_close方法来关闭ie。

  2、数据存储及分析:

  把这些采集到的数据都写入oracle数据库(需要安装oci8,我用的oracle版本是10g),在数据库建立2张关联的表,一张用来存放整个性能点的数据,如url、总体的下载时间、错误数、发送及接收到的字节数等。一张表用来存放每个监控点的页面元素信息(这个量是很大的,往往一个页面一次会下载 60-200个左右的页面元素,一次运行下来,性能点多些的话,就有几千个数据,每5-10分钟自动运行一次,一天下来的量…………嘿嘿,不少吧),主要是些采集时间(这个是和前面一张表关联的字段)、元素链接、元素的下载时间、元素开始下载的时间(在分析性能问题的时候很有用)、httpcode、元素类型(对页面调优、瘦身等意义很大)。

  3、数据展现:

  当ruby与oracle都弄好了,进行调试,需要的数据都进入数据库了,那么接下来就开始做页面客户端了。为什么要用页面客户端呢?在web上,人人都可以访问你的结果页面,鼠标轻点,就可以自动生成自己想要的图表数据。我使用的是tomcat,配置起来超级简单。图表生成我用的是open- flash-chart-1.9.7,这个东东做出来的图表很好看,也比较好用,鼠标垫在曲线上,可以显示出该点数据。总而言子,易用又美观。还有一点要注意的是,数据列表展现的时候,一定要做分页。否则一大堆数据显示出来,你的浏览器要卡死的(特别是现实页面元素,那个恐怖啊,我吃亏过)。

  4、自动执行自动化脚本:

  自动化脚本如何进行自动执行呢?我这里提供了2种方法:

  1)把自动化脚本做成一个exe文件,然后通过页面调用这些exe文件来进行执行,具体方法如下

  Runtime runtime = Runtime.getRuntime();

  runtime.exec("D:/fun2.exe");

  2)将自动化脚本放置在windows自带的计划任务中,设置好后可以循环执行。

 

 


TAG:

 

评分:0

我来说两句

Open Toolbar