您的位置:首页 > 运维架构 > 网站架构

一个网站自动化测试程序的设计与实现

2013-01-21 10:57 260 查看
CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion)

代码
下载地址:http://download.csdn.net/detail/fansunion/5018357(免积分)

代码亮点:可读性很好,注释详尽

背景

工作中,在维护一个项目。几个月前开始了 后台Java网站的重构。

重构的过程 需要不断去 运行网站,然后不断去测试。其中,最常见的

问题是 服务器内部错误 即 500错误。只要不出现500,一般来说,程序的业务不会出错。

此外,期间还要不断地去 完成新的功能,修复出现的Bug,而后台Java网站具体开发人员几乎就我一个。

无限制的测试工作,重复且无聊。是可忍,孰不可忍?

目标



写一个 自动化测试的程序。自动发送相关请求到网站,把请求的结果和执行时间等信息,作为报表展现出来。

通过报表就可以发现,服务器内部错误(500),页面未找到错误(404),哪些请求相对比较耗时。

重复的事情自动化,减轻工作“压力”,提高工作效率。

流程

1.把项目中需要访问的URL 记录在配置文件中。

2.读取配置文件。

3.访问每个URL。

4.生成报表并查看测试结果。

设计

1.配置文件的设计

conf文件下是所有的配置信息。

每一个文件夹代表一个独立的网站,比如conf目录下 有 user和fans2个文件夹,就代表有2个网站需要分别访问测试。

一个网站的配置信息,分为 website_core.properties和 website_url_*.properties。

website_url_*.properties专门放置一个模块的url。

2.读取配置文件

自定义一个 配置文件读取器,读取并解析配置信息。

3.发送请求并保存结果

使用Apache HttpClient执行请求,然后保存每个请求的执行结果到 集合中。

4.生成报表

ApachePOI 生成Excel2007(.xlsx)报表,每个sheet对应一个网站或者子系统。

实现

语言:Java

工具:Apache HttpClient,Apache POI

截图

项目结构



遇到的问题

1. 200 OK 不一定就 请求成功。

服务器内部对每个请求都进行了Session检查,未登录或登录失败或未保持会话,都会跳转到“登录页面”,此时也是200 OK。

因此,需要 先登录,并保存当前会话。

2. 保持会话的方法。

登录成功后,获取Cookie信息,之后的请求每次都带上Cookie。

3. 根据执行的操作,一个链接可以分为2大类:

查询与非查询(增加-删除-修改)。

查询请求大多有默认参数,大多可以不带参数,而非查询请求一般需要带参数。

因此,非查询请求并不能很好地进行测试。

V1.0不足与V1.1改进

1.需要手动配置 URL。当URL过多时,显得比较麻烦。

改进:可以合并类似的或者有规律的URL。

2.不能很好地支持带参数的请求。

改进:可以将请求参数和URL分开配置,一个URL对应多个参数配置。

3.请求方法使用POST方法。

改进:增加请求方法的配置。

4.单线程顺序执行每个请求,效率不够高。

开发过程中,可能需要尽快地执行请求,看到报表。

改进:增加配置,实现2种模式。

第1种,尽快执行,适合开发过程中。

第2种,按照一定的周期执行,适合诊断和发现线上的问题。

5.报表信息不够详尽,还存在不准确的地方。

改进:增加字段,改进不准确的地方。

增加统计功能。

6.会话的保持。一个网站只有1个账号登录,之后的请求都在同一个会话中。

改进:增加多个会话,作用域小的可以覆盖大的。

7.配置信息的验证不足。

改进:待细化。

结束语

代码重复是软件开发的大敌!

测试重复又何尝不是呢?

致谢

第1版问题多多,望海涵!

谢谢阅读!欢迎交流!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐