基于TestNG 与Selenium 的自动化测试设计与实施(四)
2016-03-23 14:36
302 查看
3、自动化测试实施过程
通过上面几种工具的组合,灵活使用,就可以搭建出一套适合自己的自动化测试平台。
下面我来介绍一下,这些工具在不同测试场景下的使用情况:
1)接口测试
(TestNG+DBUnit)接口自动化测试可以通过单元测试来完成,利用TestNG对每一个接口编写单元测试代码,通过DBUnit初始化数据库,将一个或多个测试并被定义为<suite>标签,批量执行测试代码并生成测试报告。
2)Webservice接口自动化测试
目前大多数互联网公司都采用SOA架构,因此对于webservice接口类型的测试显得更加重要。通常测试工程师可能会借助SoapUI等工具进行web service的测试,不可否认SoapUI在进行单一webservice接口测试中具有非常好的效果,但是在接口组合测试,以及在测试结果需要进行数据库校验的情况下就显得不是那么的自动化,总是需要人工干预,这在一定程度上导致测试效率偏低,因此我们在这里介绍如何使用Fitnesse这块开源产品实现接口测试自动化(未完待有时间补充)
3)WEB应用系统的自动化(Selenium + TestNG + DBUnit)
TestNG 尤其适合与Selenium结合使用,可以实现其他测试框架无法实现的测试,例如使用依赖项进行测试,重新运行失败了的测试,以及使用单独文件中定义的参数进行参数化测试。所有这些特性结合在一起,使它在众多 Web应用程序测试框架中脱颖而出。
在测试自动化中,测试代码不仅仅包含测试逻辑,还包含许多其他的代码,比如URL拼接、Html/xml解析、访问UI控件,等等。若把测试逻辑与这些无关的代码混在一起,测试逻辑将很难理解,也不容易维护。而采用分层结构可以解决这一问题。在分层的测试框架中,其三层结构为:
(1)数据层,包含UI数据和测试数据;UI数据是指在页面中需要输入的数据,如,普通客户新装,你需要在页面里输入三户信息,包括订购的产品及资源数据。这些通过页面注入的数据我们统称为UI数据,需要在执行测试前提前整理到Excel中,如图所示:
通过上面几种工具的组合,灵活使用,就可以搭建出一套适合自己的自动化测试平台。
下面我来介绍一下,这些工具在不同测试场景下的使用情况:
1)接口测试
(TestNG+DBUnit)接口自动化测试可以通过单元测试来完成,利用TestNG对每一个接口编写单元测试代码,通过DBUnit初始化数据库,将一个或多个测试并被定义为<suite>标签,批量执行测试代码并生成测试报告。
2)Webservice接口自动化测试
目前大多数互联网公司都采用SOA架构,因此对于webservice接口类型的测试显得更加重要。通常测试工程师可能会借助SoapUI等工具进行web service的测试,不可否认SoapUI在进行单一webservice接口测试中具有非常好的效果,但是在接口组合测试,以及在测试结果需要进行数据库校验的情况下就显得不是那么的自动化,总是需要人工干预,这在一定程度上导致测试效率偏低,因此我们在这里介绍如何使用Fitnesse这块开源产品实现接口测试自动化(未完待有时间补充)
3)WEB应用系统的自动化(Selenium + TestNG + DBUnit)
TestNG 尤其适合与Selenium结合使用,可以实现其他测试框架无法实现的测试,例如使用依赖项进行测试,重新运行失败了的测试,以及使用单独文件中定义的参数进行参数化测试。所有这些特性结合在一起,使它在众多 Web应用程序测试框架中脱颖而出。
在测试自动化中,测试代码不仅仅包含测试逻辑,还包含许多其他的代码,比如URL拼接、Html/xml解析、访问UI控件,等等。若把测试逻辑与这些无关的代码混在一起,测试逻辑将很难理解,也不容易维护。而采用分层结构可以解决这一问题。在分层的测试框架中,其三层结构为:
(1)数据层,包含UI数据和测试数据;UI数据是指在页面中需要输入的数据,如,普通客户新装,你需要在页面里输入三户信息,包括订购的产品及资源数据。这些通过页面注入的数据我们统称为UI数据,需要在执行测试前提前整理到Excel中,如图所示:
相关文章推荐
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
- leetcode 每日一题 112. Path Sum
- eclipse下使用NDK开发so库
- Java-大数据常用的开发工具
- 中国移动业务支撑系统简介(BOSS、BASS、BOMC、4A及VGOP)
- Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究
- struts2
- DB2“静默”状态与解除
- 什么是pyc文件
- WAS环境下解决奇怪的中文乱码问题
- Using convolutional neural nets to detect facial keypoints tutorial
- mysql集群
- 如果让c程序更短
- leetcode 102 Binary Tree Level Order Traversal
- Web API的发布问题
- 简单的用CAShapeLayer画个圈
- 详解Snort系统
- JTable的排序和过滤
- DB2开启归档模式