SahiPro自动化测试资料
- 格式:docx
- 大小:365.94 KB
- 文档页数:20
自动化测试基础知识1. 什么是自动化测试?自动化测试是指使用软件工具来执行测试脚本,以替代人工测试过程中的重复、繁琐的操作。
自动化测试可以提高测试效率、节省时间和成本,同时提高测试的准确性和一致性。
2. 自动化测试的优势和适用场景2.1 优势•提高测试效率:自动化测试可以在短时间内执行大量测试用例,比人工测试更快捷。
•省时省力:自动化测试可以自动执行测试用例,减少了重复的繁琐操作。
•高度可重复性:自动化测试脚本可以反复运行,无需手动操作。
•提高覆盖范围:通过自动化测试可以覆盖更多的功能和场景。
•减少人为错误:自动化测试可以降低人为疏忽导致的错误。
2.2 适用场景•回归测试:当软件版本更新时,为了保证新功能的稳定性,可以使用自动化测试执行回归测试。
•压力测试:通过模拟大量并发用户来测试系统的稳定性和性能。
•接口测试:用于测试不同系统之间的接口是否正常,数据是否传递正确。
•手机APP测试:通过自动化测试来测试手机APP的功能和兼容性。
•Web应用测试:用于测试Web应用的功能和兼容性。
•数据库测试:用于验证数据库的一致性和数据完整性。
3. 自动化测试的基本流程3.1 确定测试目标和需求在开始自动化测试之前,需要明确测试的目标和需求。
这包括测试的范围、测试的重点、预期的结果等。
3.2 选择合适的自动化测试工具根据测试的需求和项目的特点,选择合适的自动化测试工具。
常用的自动化测试工具有Selenium WebDriver、Appium、JMeter等。
3.3 编写测试脚本根据测试需求和测试工具的特点,编写测试脚本。
测试脚本可以使用编程语言如Java、Python等编写,并调用自动化测试工具提供的API。
3.4 运行测试脚本通过调用自动化测试工具提供的命令或界面,运行测试脚本。
3.5 输出测试报告自动化测试工具会生成测试报告,包括测试用例的执行结果、通过率、失败原因等。
根据测试报告,可以分析测试结果,发现问题并及时修复。
自动化测试经验分享自动化测试经验分享1.引言自动化测试是现代软件开发中不可或缺的一部分。
它能够提高测试的效率和准确性,并帮助团队快速检测和发现软件中的缺陷。
本文将分享一些自动化测试的经验和最佳实践,希望能对读者在进行自动化测试时提供一些有用的指导。
2.测试策略在开始自动化测试之前,制定一个明确的测试策略非常重要。
测试策略应该明确测试的范围、目标和优先级,并且要考虑不同的测试技术和工具来达到这些目标。
另外,测试策略还应该包括测试的环境、资源和时间安排等信息。
3.选择合适的自动化测试工具选择合适的自动化测试工具是自动化测试成功的关键。
根据项目的需求和技术栈,选择适合的工具来编写、运行和管理测试用例。
常用的自动化测试工具包括Selenium、Appium、JUnit等。
4.设计可维护的测试用例设计可维护的测试用例是确保自动化测试项目持续稳定运行的重要因素。
测试用例应该具备可读性、可维护性和可扩展性,并且要尽量避免冗余和重复的测试步骤。
此外,使用模块化的设计和数据驱动的方法可以使测试用例更易管理和维护。
5.使用版本控制管理测试脚本使用版本控制系统(如Git)可以更好地管理和协作测试脚本。
版本控制系统可以跟踪和记录所有测试脚本的更改,方便团队成员合作开发和维护。
同时,版本控制也提供了回退和回归测试的能力,当测试脚本发生错误时可以方便地找出问题所在。
6.持续集成与自动化测试将自动化测试集成到持续集成流程中可以确保每次代码提交后都能自动运行测试并及时反馈结果。
持续集成可以减少手动的重复工作,提高测试效率,并且能够及时发现和解决潜在的问题。
7.定期维护和更新测试脚本定期的维护和更新测试脚本是自动化测试持续稳定运行的重要环节。
随着软件的版本迭代和需求的变化,测试脚本可能需要进行更新和修复。
此外,及时修复测试脚本中的失败用例也是保持自动化测试结果准确性的关键。
8.监控和报告测试结果通过监控和报告测试结果可以帮助开发团队了解软件的质量和稳定性。
自动化测试技术手册自动化测试技术是软件测试领域中的一项重要技术,它能够提高测试效率和质量,并且能够减少测试过程中的人力成本。
本手册将详细介绍自动化测试技术的原理、方法和工具,帮助读者全面了解和应用该技术。
一、自动化测试技术概述自动化测试技术是利用计算机程序对软件进行测试的过程。
相较于传统的手工测试方法,自动化测试技术能够通过编写测试脚本和使用自动化测试工具来自动执行测试用例,提高测试效率和准确性。
它适用于各类软件项目,无论是Web应用、移动应用还是桌面应用,都可以采用自动化测试技术进行测试。
二、自动化测试技术的原理自动化测试技术的基本原理是模拟用户的操作行为,通过自动化测试工具执行一系列预定的测试用例,检查软件的功能和性能是否符合预期要求。
它可以模拟用户在软件界面上的各种操作,例如点击按钮、输入文本、选择选项等。
通过模拟这些操作,自动化测试工具能够自动进行测试,提高测试效率并减少人为错误。
三、自动化测试技术的方法1. UI自动化测试UI自动化测试是最常用的自动化测试方法之一。
它通过模拟用户的操作,自动执行预定的测试用例,检查软件界面的正确性和响应性能。
UI自动化测试工具可以录制和回放用户的操作,自动生成测试脚本并执行测试,如Selenium、Appium等。
2. API自动化测试API自动化测试是针对软件的接口进行测试的一种方法。
它通过编写测试脚本,直接调用软件接口并验证返回结果是否符合预期。
API自动化测试能够快速检查接口的正确性和功能性能,并减少人为测试的工作量,如Postman、JUnit等。
3. 性能自动化测试性能自动化测试是测试软件在负载情况下的性能指标的方法。
它通过模拟多个用户同时访问软件,测试其响应时间、并发处理能力和资源利用率等。
性能自动化测试可以使用压力测试工具对软件进行测试,如Apache JMeter、LoadRunner等。
四、自动化测试工具1. SeleniumSelenium是一种广泛使用的UI自动化测试工具,支持多种编程语言和浏览器。
自动化测试经验分享标题:自动化测试经验分享引言概述:自动化测试是软件开发过程中的重要环节,能够提高测试效率、减少人为错误,并在持续集成和持续交付中发挥关键作用。
在实践中,我们积累了一些自动化测试的经验,希望能够与大家分享。
一、选择合适的自动化测试工具1.1 确定测试需求:在选择自动化测试工具之前,首先要明确测试的目的和需求,包括测试的范围、频率和自动化的可行性。
1.2 评估工具特性:根据项目特点和团队技术水平,评估各种自动化测试工具的特性,包括支持的测试类型、易用性、性能和稳定性等。
1.3 选择适合的工具:根据评估结果和项目需求,选择适合的自动化测试工具,并进行培训和实践,以确保团队熟练掌握工具的使用。
二、编写可维护的自动化测试脚本2.1 设计良好的测试用例:在编写自动化测试脚本之前,需要设计良好的测试用例,包括输入数据、预期结果和测试步骤等,以确保测试覆盖全面。
2.2 使用合适的定位器:在编写自动化测试脚本时,要使用合适的元素定位器,包括ID、XPath、CSS Selector等,以确保脚本的稳定性和可维护性。
2.3 封装通用方法:为了提高测试脚本的复用性和可维护性,可以封装通用的测试方法和函数,如登录、点击、输入等,以减少重复代码和提高效率。
三、执行自动化测试并生成报告3.1 配置测试环境:在执行自动化测试之前,需要配置好测试环境,包括浏览器版本、操作系统、网络连接等,以确保测试结果的准确性。
3.2 执行测试脚本:执行自动化测试脚本时,要监控测试进度和结果,及时处理异常和错误,以确保测试的顺利进行。
3.3 生成测试报告:在测试完成后,生成详细的测试报告,包括测试覆盖率、通过率、失败原因等,以便团队及时分析和优化测试策略。
四、持续集成和持续交付4.1 集成自动化测试:将自动化测试集成到持续集成流程中,通过自动触发测试、自动化部署等方式,实现持续集成和持续交付。
4.2 监控测试结果:定期监控自动化测试结果,包括通过率、失败率、执行时间等,及时发现和解决问题,以确保软件质量。
自动化测试工具和流程随着软件开发行业的发展和技术的进步,自动化测试在软件测试领域扮演着越来越重要的角色。
自动化测试工具通过模拟用户操作,验证软件的正确性和稳定性,大大提高了测试的效率和准确性。
本文将详细介绍自动化测试工具和流程,帮助读者了解自动化测试的基本原理和实践步骤。
一、自动化测试的基本原理自动化测试工具的基本原理是通过模拟用户的操作来测试软件。
它可以模拟用户的点击、输入、滚动等操作,验证软件的各个功能模块是否正常工作。
自动化测试工具能够自动执行大量的测试用例,并生成详细的测试报告,帮助开发人员快速定位和修复问题。
二、选择适合的自动化测试工具选择合适的自动化测试工具是成功实施自动化测试的关键。
目前市面上有很多自动化测试工具可供选择,如Selenium、Appium、Jenkins等。
在选择自动化测试工具时,需考虑以下几个因素:1. 测试对象:如果是web应用程序,Selenium是一个非常好的选择;如果是移动应用程序,Appium是一个不错的选择。
2. 技术栈:如果开发人员擅长某个语言或框架,可以选择相应语言或框架对应的自动化测试工具。
3. 社区支持:选择一个有活跃社区支持的自动化测试工具,能够及时获取帮助和解决问题。
三、自动化测试的基本步骤实施自动化测试通常分为以下几个步骤:1. 环境准备:安装并配置自动化测试工具所需的环境,如Java、Python、Android SDK等。
确保测试人员可以在测试环境中正常执行自动化测试脚本。
2. 制定测试计划:根据软件的需求和功能,制定相应的测试计划。
明确测试的范围、目标和时间计划。
3. 编写测试脚本:使用自动化测试工具提供的API或脚本语言编写测试脚本。
测试脚本应该包含测试用例的操作步骤、预期结果和断言条件等。
4. 执行测试脚本:在测试环境中执行测试脚本,记录执行过程中的日志和截图。
确保脚本的正确性和稳定性。
5. 分析测试报告:根据自动化测试工具生成的测试报告进行分析,查看测试结果和异常情况。
自动化测试的原理和基本流程自动化测试是软件开发中一项重要的质量保障措施,可以提高测试效率、降低测试成本,并确保软件系统的稳定性和质量。
本文将介绍自动化测试的原理和基本流程。
一、自动化测试的原理自动化测试的原理是利用脚本和工具代替人工进行测试执行和结果验证的过程。
通过编写自动化脚本,可以模拟用户的操作,完成各种测试任务,并生成测试报告,用于分析和验证软件系统的功能和性能。
自动化测试的原理主要包括以下几个方面:1. 自动化脚本编写:通过使用自动化测试工具或编程语言,编写测试脚本,实现不同测试用例的执行和结果验证。
2. 元素识别与操作:自动化脚本需要能够准确地识别和操作被测试系统的各种元素,如输入框、按钮、下拉列表等,以完成模拟用户操作的功能。
3. 数据准备和清理:自动化测试需要事先准备好测试数据,并在测试完成后清理数据,以确保测试环境的稳定性和一致性。
4. 预期结果验证:自动化脚本执行完成后,需要对实际结果与预期结果进行比较和验证,以确保软件系统的功能和性能符合要求。
5. 异常处理和日志记录:自动化脚本需要具备良好的异常处理机制,能够捕获和处理异常情况,并记录日志以便后续分析和排查问题。
二、自动化测试的基本流程自动化测试的基本流程包括需求分析、测试计划、脚本编写、执行测试、结果分析和报告生成等几个关键步骤。
下面将详细介绍自动化测试的基本流程。
1. 需求分析:首先需要明确测试的目标和需求,包括功能测试、性能测试、安全性测试等方面的需求。
基于需求分析,确定测试的重点和范围。
2. 测试计划:根据需求分析,制定详细的测试计划。
测试计划包括测试环境的配置、测试用例的设计和执行策略等内容,以确保测试的全面性和有效性。
3. 脚本编写:根据测试用例的设计,编写自动化测试脚本。
脚本编写过程中需要考虑测试数据的准备和清理,以及元素的识别和操作等方面的问题。
4. 执行测试:在测试环境中执行自动化测试脚本,模拟用户的操作,完成测试任务。
自动化测试经验分享自动化测试是软件测试中的重要环节,它可以提高测试效率、减少人力成本,并且能够在短时间内执行大量的测试用例。
在进行自动化测试时,有一些经验和技巧可以帮助我们更好地进行测试工作。
本文将分享一些我在自动化测试过程中积累的经验,希望对读者有所帮助。
1. 选择合适的自动化测试工具选择合适的自动化测试工具是自动化测试成功的关键之一。
市面上有很多自动化测试工具,如Selenium、Appium、Jenkins等。
在选择工具时,需要考虑测试需求、技术栈、易用性、可扩展性等因素。
同时,要注意工具的稳定性和社区活跃度,以便能够及时获取支持和解决问题。
2. 设计可维护的测试用例在进行自动化测试时,需要设计可维护的测试用例。
一个好的测试用例应该具备以下特点:- 简洁明了:测试用例应该简单明了,易于理解和执行。
- 独立性:每个测试用例应该是相互独立的,不依赖于其他用例的执行结果。
- 可重复性:测试用例应该能够重复执行,以便验证软件在不同环境和条件下的稳定性和一致性。
- 可扩展性:测试用例应该能够方便地进行扩展和修改,以适应软件的变化和需求的变更。
3. 选择合适的自动化测试框架自动化测试框架可以提供一些基础功能和工具,帮助我们更好地进行自动化测试。
选择合适的自动化测试框架可以提高测试效率和质量。
常见的自动化测试框架有TestNG、JUnit、Robot Framework等。
在选择框架时,需要考虑框架的功能、易用性、社区支持等因素。
4. 编写可靠的自动化测试脚本编写可靠的自动化测试脚本是自动化测试的核心。
一个好的自动化测试脚本应该具备以下特点:- 稳定性:脚本应该能够在各种环境和条件下稳定地执行,不受外界因素的干扰。
- 可读性:脚本应该易于阅读和理解,方便其他人进行维护和修改。
- 可复用性:脚本应该能够被多个测试用例复用,避免重复编写相似的代码。
- 容错性:脚本应该能够处理异常情况,如断言失败、元素未找到等,以保证测试的稳定性和可靠性。
自动化测试经验分享自动化测试是软件测试领域中的一项重要工作,它通过使用自动化工具和脚本来执行测试任务,提高测试效率和准确性。
在进行自动化测试时,需要考虑到多个因素,包括测试环境的搭建、测试工具的选择、脚本的编写和维护等。
在本文中,我将分享一些我在自动化测试方面的经验和建议,希望能对读者有所帮助。
一、测试环境的搭建在进行自动化测试之前,首先需要搭建一个适合的测试环境。
这个环境应该包括测试所需的硬件设备、操作系统、数据库等。
同时,还需要安装和配置测试工具所需的软件和驱动程序。
确保测试环境的稳定性和一致性对于自动化测试的顺利进行非常重要。
二、测试工具的选择选择合适的测试工具是自动化测试的关键。
根据项目的需求和特点,可以选择不同的测试工具。
常用的自动化测试工具包括Selenium、Appium、Jenkins等。
这些工具都有各自的特点和适用范围,需要根据项目的具体情况进行选择。
在选择测试工具时,还需要考虑工具的易用性、稳定性和扩展性等因素。
三、脚本的编写和维护脚本的编写是自动化测试的核心工作。
一个好的测试脚本应该具备可读性、可维护性和可扩展性。
在编写测试脚本时,需要考虑到测试用例的覆盖范围和执行顺序。
同时,还需要注意脚本的错误处理和日志记录,以便快速定位和解决问题。
另外,随着项目的迭代和需求的变化,测试脚本也需要进行相应的维护和更新。
四、测试数据的准备在进行自动化测试时,需要准备一些测试数据来验证系统的功能和性能。
这些数据可以是真实的数据,也可以是虚拟的数据。
在准备测试数据时,需要考虑到数据的完整性、一致性和可重复性。
同时,还需要注意数据的敏感性和保密性,确保测试数据的安全性。
五、测试结果的分析和报告在执行自动化测试后,需要对测试结果进行分析和报告。
这些报告可以包括测试用例的执行情况、错误的详细信息、测试覆盖率等。
通过分析测试结果,可以及时发现和解决问题,提高软件的质量和稳定性。
同时,还可以根据测试结果来评估测试的效果和改进测试策略。
使用Sahi 实现Web 自动化测试Sahi 是Tyto Software 旗下的一个基于业务的开源Web 应用自动化测试工具。
Sahi 运行为一个代理服务器,并通过注入JavaScript 来访问Web 页面中的元素。
Sahi 支持HTTPS 并且独立于Web 站点,简单小巧却功能强大。
它相对于Selenium 等自动化测试工具,在动态ID 元素查找和隐式页面等待处理等方面具有一定的优势。
选择Sahi工具来实现具体Web 项目的自动化测试是一个很不错的选择。
随着Web 技术和互联网的发展,Web 应用产品越来越丰富,基于Web 页面测试的需求与日俱增。
在当前全球软件都在追求高效、敏捷的开发模式的大背景下,Web 自动化测试成为了新一波技术探讨和研究的热潮。
因为传统的手工测试不仅效率低,并且测试质量受限于测试人员的一些情绪和心情。
若当一个测试人员带着烦躁情绪来测这些繁杂的大量重复性工作,测试的质量令人担忧。
更何况,当这项测试工作涉及到全球化方面的测试时,多语言版本的测试工作导致该测试工作量的成倍增加,这无疑是一项巨大的考验!Sahi 的特性和优势:当提及面向Web 的自动化测试,相信许多读者会想到或者说使用过Selenium、Watir 等工具,而对于Sahi 就可能比较陌生。
首先,让我们先来了解下Sahi 工具。
它是一款印度公司Tyto Software 开发的成熟的开源Web 自动化测试工具。
Sahi 简单易用,能良好支持Ajax 和Web2.0 技术,同时适用于敏捷和传统的不同测试模式。
那么,它与其他非常流行的Web 自动化测试工具有哪些不同和优势呢?让我们将其与主流自动化测试工具Selenium 和Watir 来进行一番对比,请参考图1:图 1. Sahi 与其他工具的对比从上图的对比可以看出,Selenium 支持的脚本语言比较丰富,且自带Selenium IDE 自动录制工具,Watir 执行的速度相对其他较快。
而Sahi 同样具备了自带的录制器,且支持几乎所有浏览器,且对JS 支持较好,拥有页面等待判断机制,内置Java 异常报告,支持Ajax 等优势。
下面,本文将详细介绍一下Sahi 的几大优势。
基于上下文的页面识别机制:大多数如Selenium 等Web 自动化测试工具或是自动化框架,都采用类似基于DOM 的定位策略、Xpath 定位策略和id、name、identifier 等页面元素定位策略。
Identifier 定位是最普遍的一种定位方式,当不能识别为其它定位方式后,默认为identifier 定位。
在这种策略下,第一个使用id 的页面元素将被识别出来,如果没有使用指定id 的元素,那么将识别第一个名字与指定条件相符的元素。
例如,identifier 识别username 元素的定位策略:identifier=usernameId 定位是在知道元素具体id 特征的情况下的一种更精确定位。
例如,定位页面元素loginFrom:id=loginFromname 定位方式是去识别第一个匹配名称属性的UI 元素。
如果多个元素拥有相同的名称属性,可以使用value 过滤器来进一步优化您的定位策略。
例如,定位页面元素为username:name=usernameXpath 定位是在XML 中定位元素的方法,而HTML 可以被看作是XML 的一种实现。
XPath 扩展了上面id 和name 定位方式,提供了绝对路径和相当路径两种查找方式。
绝对路径:html/body/div[1]/div[1]/div[3]/div[1]/form/span/input[1]相对路径查找://div[@id='fm']/form/span/input然而,在实际的情况下,页面元素并非如预期般明确。
一些动态页面的DOM 树常常随着Web 产品的更新而频繁改变。
许多的元素值如ID、Name 等在代码中并不是必须的,常常会缺省。
并且,属性值往往不是唯一对应的,页面中有时会存在相同属性的元素。
当缺省id 值或是Xpath 定位失效时,上述这几种查找定位方式往往显得无助和脆弱。
Sahi 采用了一种主动查找的机制,它不受限于特定的元素属性。
在没有ID、Name 值的情况下,它可以使用一些如“title,value”等属性,这些都是页面可见的属性,所见即所得。
同时,Sahi 会通过传入这些可见可识别的属性值,来按照Sahi 预设的机制进行查找识别。
Sahi 允许开发者对每一种元素设置不同属性和特定的查找顺序,包括那些自定义的属性名。
所以Sahi 相对于其他的Web 自动化测试工具更灵活更开放。
比如,_link(“valueName”)用来定位一个定义为“valueName”的link,这里的valueName 并不一定是value 的属性值,也可以是它的id、title 等。
前面提到了Sahi 主动查找的机制,那么它是如何去查找DOM 节点下的特定元素的呢?Sahi 主要提供了三种基于上下文的元素API:_in,_near 和_under。
从字面意思上,我们不难理解,_in 是指在某个DOM 节点下查找某个元素,这比Xpath 的不管是绝对路径或是相对路径查找都来的灵活,不会因为DOM 树内部结构发生变化而导致路径失效找不到元素的问题。
_near 是指在某个元素附近查找相应设定规则条件的最近一个元素,这对于一个页面中有多个相同属性值的情况提供了一个很好的解决方式,使查找的范围更精确。
_under 是指在某个元素下方开始查找,找到符合条件的最近一个元素,一般_under 都适用在具有相同偏移量的同一列中。
下面,我们来看一个例子,加深对Sahi 这种基于上下文识别查找机制的理解:图 2. 案例网页假设,在图2 显示的Web 页面的所有text box 的name=”q”,那么,Sahi 的侦探器通过一些标识来鉴别它们,如(_textbox("q"), _textbox("q[1]")和_textbox("q[2]"))。
如果,我们要定位“Ruby for Rails”那一行的text box,即_textbox("q[1]")。
传统的元素识别会遇到多个相同属性元素的问题,即使是Xpath 的定位方式也会因为在它前面加了一行新的数据而导致Xpath 定位失败的情况。
这时Sahi 可以通过_near 这种方式来定位:当要定位check box 时,我们又会发现,“Ruby for Rails”这一行有“Recommend”和“Already own”两个check box,为了更准确地定位,我们可以结合_under,例如:_checkbox(0,_near(_cell("Ruby forRails")),_under(_cell("Recommend")))。
如果在整个页面中存在多个这样的表格,我们还可以用_in 来进一步缩小范围,如:_checkbox(0,_near(_cell("Ruby for Rails")),_under(_cell("Recommend")), _in(_cell("Cost))).同时值得一提的是,Sahi API 中的identifier 参数都支持正则表达式,例如,_div(/name.*/) 用来识别所有以某种预属性值是name 开头的div。
隐式页面加载响应等待机制:现在越来越多的Web 应用采用Ajax 的应用技术,来支持网页数据的异步请求响应。
当前一般的Web 自动化测试工具没有一个智能的处理机制,来判断何时可以继续下一个操作。
像Selenium 等自动化测试工具通常会在脚本中人为来设定一个固定的等待时间。
但这往往被证实不一定是准确的。
实际测试中,人是很难准确判断每一个操作请求需要的合理时间数值。
因为,等待时间设置过短,下一步操作在被测应用请求还未返回就执行了,或是由于网络因素使正常的响应时间变长,都可能导致测试过程找不到相应的页面元素,从而导致整个测试用例失败的情况。
而如果把时间设置过长,又会造成在一些正常响应过程中的不必要等待的时间浪费,降低了测试效率。
当然,一些测试人员会在自动化测试脚本中加入一些自定义的代码。
通过轮询界面上某个指定元素,来判断请求响应是否返回,进而决定继续下一步操作或者是超时。
但是,这样的查找过程会导致整个脚本代码变得非常臃肿,加大了开发的成本。
更何况,在一个动态的页面找到指定的元素本身就不是一件容易的事。
Sahi 内置了智能的页面等待机制,能够自动判断Ajax 请求是否已经处理完毕,然后继续下一步操作。
并且,这一点对于用户是“隐式”的,不需要增加额外的代码。
回页首Sahi 的工作原理:简单地说,用Sahi 实现自动化测试有三步,录制,精炼脚本和回放,如下图:图 3. Sahi 工作的三个主要过程如上图Sahi 就是先用其自带的录制工具,把大致的操作过程录制下来,并用Sahi 代码记录下整个操作过程。
随后,将自动生成的代码进一步的精炼和开发,调用一些外部API 或编写特定代码来实现特定的操作。
最后,用Sahi 来回放保存好的最终脚本,Sahi 就将自动对Web 应用进行定义好的测试操作。
下面,本文将对这三个过程进行详细说明。
第一步:录制图 4. Recording 过程的工作原理Sahi 是通过运行为一个代理服务器,并通过设置浏览器代理为Sahi 服务器。
这样Sahi 的脚本就能够通过request 请求来注入到JavaScript 里以访问Web 页面中的元素。
如图,可以很清晰的看到,Sahi 就是Web 浏览器和Web 服务器之间的一个中间代理。
第二步:精炼脚本图 5. Refine Script 过程的工作原理录制的脚本都是指定元素并唯一操作的,这时就需要对代码进行重构,抽取出核心的功能块,对其中的元素进行参数化处理,以实现重用。
这样的数据可以从外部的DB 或文件中读取而来。
与此同时,也可调用Sahi API 或外部Java 等API 实现特定的一些功能。
第三步:回放图 6. Play back 过程的工作原理Sahi 运行提炼好的脚本来自动化测试操作,并生成测试报告。
回页首Sahi 的安装部署与配置Sahi 虽然是Tyto 公司的产品,但它的下载放在世界上最大的开源软件开发网站SourceForge 上,可以通过点击这里下载。
图 7. Sahi 下载默认推荐是下载 install_sahi_xxx.jar,这是一个可执行文件,包含了Sahi 的安装器和Sahi 工具及其源代码。