一个网站自动化测试工具的设计与实现

小雷FansUnion
博客专家认证
2013-01-21 11:39:12
代码

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

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


背景

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

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

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

程序的业务不会出错。


此外,期间还要不断地去 完成新的功能,修复出现的Bug,而后台Java网站具体开发人员
几乎就我一个。无限制的测试工作,重复且无聊。是可忍,孰不可忍?


目标

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

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

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


流程
1.把项目中需要访问的URL 记录在配置文件中。
2.读取配置文件。
3.访问每个请求。
4.生成报表并查看测试结果。

设计

1.配置文件的设计
conf文件下是所有的配置信息。
每一个文件夹代表一个独立的网站,比如conf目录下 有 manager和coke 2个文件夹,就代表
有2个网站需要分别访问测试。

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

website_url_user.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大类:

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

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

因此,非查询请求并不能很好地进行测试。
...全文
944 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wguoliang 2014-05-05
  • 打赏
  • 举报
回复
你帖子开头的下载链接提示资源不存在,Apache HttpClient,Apache POI 只有这两个工具才可以实现互联网上的自动化测试?
wguoliang 2014-05-05
  • 打赏
  • 举报
回复
你那个下载链接怎么是错误的啊? Apache HttpClient,Apache POI只有使用这两个工具?
小雷FansUnion 2013-07-17
  • 打赏
  • 举报
回复
引用 5 楼 haohui120 的回复:
我表示很支持
看看我的博客文章吧 支持下
小雷FansUnion 2013-07-17
  • 打赏
  • 举报
回复
引用 7 楼 xuedeyingzi 的回复:
已经结贴了啊 你迟到啦
Louis-Lv 2013-07-16
  • 打赏
  • 举报
回复
demon7452 2013-07-15
  • 打赏
  • 举报
回复
表示不懂,混个积分吧……
Ls-hui 2013-07-15
  • 打赏
  • 举报
回复
我表示很支持
齐岳 2013-07-14
  • 打赏
  • 举报
回复
虽然不懂 ,顶贴支持
小雷FansUnion 2013-07-14
  • 打赏
  • 举报
回复
引用 2 楼 ShenShiampMoYi 的回复:
过来回复个吧、、 让LZ有分可以回~~
结贴给你分了。
  • 打赏
  • 举报
回复
过来回复个吧、、 让LZ有分可以回~~
小雷FansUnion 2013-01-21
  • 打赏
  • 举报
回复
这个账号的 第1个贴子。 想知道 是否有人 对自动化测试 有兴趣? 重复性的功能测试 缺乏成长。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧