1、自动化测试框架的产生
在执行自动化测试过程中,会发现好不容易写好的测试脚本,因为需求变化的原因没过多久就无法执行成功了。这样测试工程师只能去不断修改和维护自动化脚本。这样的情况反复出现后,测试工程师发现投入维护脚本的时间和精力比纯手工测试还多,而且造成纯手工测试的时间被明显减少,导致自动化测试的效果大打折扣,软件的质量还不如以前纯手工测试的时候好。大家也在思考和尝试解决这样的问题:如何能够降低测试脚本的维护成本和工作量,提高自动化测试脚本的编写和维护效率,真正让自动化测试提高软件测试工程师的工作效率,能够为开发团队快速地反馈当前软件质量状态,为企业真正节省测试成本,这样,自动化测试框架产生了。
自动化测试框架是应用于自动化测试的程序框架,它提供了可重用的自动化测试模块,提供最基础的自动化测试功能(如打开浏览器),或提供自动化测试执行和管理功能的架构模块(如TestNG).,它是由自动化测试基础模块、管理模块、统计模块等组成的工具集合。
2、自动化测试框架常见的4种模式:
1)数据驱动测试框架
使用数据数组、测试数据文件或者数据库等方式作为测试过程输入的自动化测试框架,此框架可以将所有测试数据在自动化测试执行的过程中进行自动加载,动态判断测试结果是否符合预期,并自动输出测试报告。此框架用于在一个测试流程中使用多组不同的测试数据,以此来验证被测试系统是否能够正常工作。
2)关键字驱动测试框架(高级的数据驱动测试框架)
使用被操作的元素对象、操作的方法和操作的数据值作为测试过程输入的自动化测试框架,可表示为item.operation(value)。被操作的元素对象、操作的方法和操作的数据值可以保存在数据数组、测试数据文件或者数据库中作为关键字驱动测试框架的输入。如在页面上的密码输入框中输入密码,则可以在数据文件中进行如下定义:
密码输入框,输入,testpaseword。
3)混合型测试框架
关键字驱动测试框架加入数据驱动功能。
4)行为驱动测试框架
支持自然语言作为测试用例描述的自动化测试框架。
3、自动化测试的作用
1)有效组织和管理测试脚本。
2)进行数据驱动或关键字驱动的测试。
3)将基础的测试代码进行封装,降低测试脚本编写的复杂性和重复性。
4)提高自动化测试脚本维护和修改的效率。
5)自动执行测试脚本,并自动发布测试报告,为持续集成的开发方式提供脚本支持。
6)让不具备编程能力的测试工程师开展自动化测试工作。
4、自动化测试框架的设计核心思想
要以解决测试中的问题和提高测试工作的效率为主要导向来进行自动化测试框架的设计。自动化测试框架的设计核心思想是将常用的脚本代码或者测试逻辑进行抽象和总结,然后将这些代码进行面向对象设计,将需要复用的代码封装到可公用的类方法中。通过调用公用的类方法,测试类中的脚本复杂度会被大大降低,让更多脚本能力不强的测试人员来实施自动化测试。
创建和实施Web自动化测试框架的步骤如下:
1)根据测试业务的手工测试用例,选出需要可自动化执行的测试用例。
2)根据可自动化执行的测试用例,分析出测试框架需要模拟的手工操作和重复高的测试流程或逻辑。
3)将手工操作和重复高的测试逻辑在代码中实现,并在类中进行封装方法的编写。
4)根据测试业务的类型和本身技术能力,选择自动化测试框架模型。
5)确定框架模型后,将框架中常用的浏览器选择、测试数据处理、文件操作、数据库操作、页面元素的原始操作、日志和报告等功能进行类方法的封装实现。
6)对框架代码进行集成测试和系统测试,采用PageObject模式和TestNG框架(或JUnit)编写测试脚本,使用框架进行自动化测试,验证框架的功能可以满足自动化测试的需求。
7)编写自动化测试框架的常用API文档,以供他人参阅。
8)在测试组内部进行培训和推广。
9)不断收集测试过程中的框架使用问题和反馈意见,不断增加和优化自动化测试框架的功能,不断增强框架中复杂操作的封装 脚本效果,尽量降低测试脚本的编写复杂性。