自动化测试框架的实现_第1页
自动化测试框架的实现_第2页
自动化测试框架的实现_第3页
自动化测试框架的实现_第4页
自动化测试框架的实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动化测试框架的实现一、 背景为什么要做自动化测试?1 提高测试效率和降低测试成本2 实现快速的回归测试,加快测试进度从而加快产品发布进度3 更多的测试,提高测试覆盖率4 提高测试的可靠性,避免人为因素为什么要做自动化测试框架实现自动化就是为了能够提升测试效率,不具备可维护性、复用性差将成为告知自动化测试失败的最致命因素,付出巨大代价但起到的效果甚微。基于以上因素并结合行业发展思路,在正式实施自动化之前,必须搭建一套适合的自动化测试框架,将脚本能够有效的组织、连贯应用起来,提高测试脚本的可维护性和可读性。二、 实现思路1、 分层设计进行测试的时候,首先保证基本功能点走通,验证页面功能点,然后测

2、试系统流程的正确性,最后保证符合系统满足业务要求。对于自动化脚本,采用分层的思想,先实现最底层的操作组件,通过调用操作组件进行组合,实现对业务流程的验证。不同的业务流程,对于底层的操作组件是可以复用的,只是调用的业务逻辑的差异,或者是测试数据的差异性。例如,可以将摸个模块的增加操作作为一个底层的操作组件,实现流程测试的时候,可以将这些操作组件组合起来。尽可能做到各脚本之间具备独立性,不相互依赖,便于进行各种基本场景的组合运行。2、 脚本分离设计对某个功能进行自动化测试,实际上就是对这个功能涉及的对象进行操作,输入测试数据来验证其结果的正确性,复杂的验证点需要编写业务逻辑。如果全部用脚本的方式编

3、写,针对每一条测试数据就需要编写一份脚本,脚本量相当巨大,同时任何改动(程序、测试用例、GUI 对象)都需要调整大量的脚本。为了达到可维护性、可复用性,将对象、操作、测试数据、业务逻辑剥离、分开管理,通过调用关系去组合实现不同的测试用例。3、 封装基础函数、基本的业务逻辑通过对基本业务逻辑的封装、调用,实现快速的脚本开发,如每个脚本都需要连接数据库,或读取CSV ,或给出测试报告,这些基础函数,可以封装起来,不同的页面需要调用的时候,只需要传入这个页面相应的对象名称,调用封装的函数执行即可。可以大大减少脚本量,也更易于维护。又如一个模块不同页面,都包含增删改查,可以将这些基本的业务逻辑封装起来

4、,脚本中重复调用的时候,也是可以调用对象名,实现重复的操作,这样可以大大减少脚本量,也更易于维护。4、 执行体系有效的执行体系可以批量、定制执行、自动运行,自动化测试真正达到提升测试效率,需要实现无人的情况下批量自动执行,并且可以定制执行。5、 异常处理脚本执行过程中,因程序错误或环境问题、脚本自身问题经常会出现非预期的错误:如意料外的弹出窗口、发现错误的数据、未找到对象等,有些情况下当前用例出错,并不影响后续用例的执行,需要支持异常处理机制,终止执行或者终止当前用例,继续后续用例的执行,亦或者跳过当前步骤,继续执行后续操作,并输出当前的错误报告。6、 数据还原自动化测试执行后,需要不断循环,

5、执行测试后,应该将测试数据删除,恢复到初始状态,不影响接下来的测试工作。7、 脚本管理自动化脚本比较多,需要进行脚本管理,随着版本的更新,自动化脚本也需要不断的增加和更新,这样需要对脚本进行管理。8、 测试数据调用由于自动化测试需要反复执行,调用大量的测试数据,通过读取CSV 的方式,批量的调用测试数据,从而实现数据的参数化。9、 结果体系针对每个测试用例,输出测试用例内容和执行结果,也可以考虑输出执行日志,从而能更详细的看到执行过程三、自动化测试框架模型 流程1.eclipse 来写测试代码2. 提交 svn (测试代码check ,可选)3.hudson 会检测(svn 是否有更新),检测

6、到更新就通过同步更新到其它slave 机器(也可以每天定时执行 。4.maven 执行test5.grid 把test 分发到各个slave 测试机(有不同的浏览器).6. 报告显示在指定的html 页面,包括测试用例,测试结果,测试时间等信息。机器部署 支持的系统平台和浏览器 四、编写测试代码1. 用firefox 中的selenium IDE录制最初的脚本,然后导出为JAVA 代码,在Junit 里进行进一步的开发;2. 编写代码打开测试站点public void setUp( throws Exception / 打开测试站点 addr 代表服务器地址 port 代表端口号 browse

7、r 代表服务器 web 代表测试站点地址selenium = new DefaultSelenium(“addr", port, “browser",“web"/ 打开测试站点selenium.start(;Case:测试搜索功能, 打开网站,输入hello ,点击搜索,验证打开页面标题是否正确。 Public void testHello( throws Exceptionselenium.open("/"selenium.click("kw"selenium.type("kw", "hell

8、o"selenium.click("su"assertEquals(“hello ”,selenium.getTitle(;3. 测试数据测试数据通过读取CSV 的方式,解决数据的参数化。4. 代码分层将页面抽象出来,与测试用例分离,以减少页面改动,要大量修改代码的情况。5. 提交svn在提交svn 前一定脚本测试通过五、测试执行1.Hudson 上新建一个job 选择执行机器及项目的svn ,如下图所标 执行,观察命令行输出 六、测试报告 测试结果保存到数据库中,以 html 形式展现,打开网页,即可看到测试运行结果,包括测 试用例,测试结果,浏览器,执行时间等。 七、自动化测试方法 自动化应该在回归测试或者软件基本功能或者流程已经成型的条件下而且以后变动不 大的情况下,开始进行的。 1、 自动化单元测试 自动化测试可以模拟手工测试,进行单元测试,验证页面功能点是否通过,执行用例, 覆盖系统的各个功能点,但是考虑自动化做单元测试,相比手工进行,会花费更多的时间, 所以我们不使用自动化来做单元测试, 而是做到使用自动化可以进行冒烟测试, 保证基本功 能点是跑的通,就可以了。 2、 自动化系统测试 自动化将用来执行流程用例, 可以自动化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论