主流的 Web 自动化测试工具
现在市面上几款比较主流的自动化测试工具有 QTP、Selenium、Robot Framework。
Selenium
Selenium 是一款用于自动化测试的开源工具,允许用户通过模仿人工操作浏览器来测试Web应用程序的功能和性能。通过使用 Selenium,用户可以编写脚本来模拟用户在不同浏览器上的操作,例如单击链接,输入文本或提交表单。
Selenium 由多个组件组成,其中最常用的是 Selenium WebDriver。WebDriver 提供了多种编程语言的 API,例如 Java、Python 和 JavaScript。此外,Selenium 还提供了 Selenium IDE,这是一个基于浏览器的插件,允许用户记录和回放测试用例。Selenium 还有一个 Grid 组件,允许同时运行多个测试用例在不同的浏览器和操作系统上。
Selenium 的主要优点是它可以在不同的平台和操作系统上运行,并且跨浏览器测试非常方便。此外,由于 Selenium 是开源的,因此可以轻松地集成到 CI/CD 过程中,以便自动化测试。最重要的是,与其他自动化测试工具相比,Selenium 使用的是真实的浏览器,可以更准确地模拟用户的行为。
但是,Selenium 也存在一些缺点。首先,Selenium 测试的性能取决于测试脚本本身,因此需要编写高质量和高效的代码。此外,Selenium 需要服务器资源支持,例如 Grid 需要大量的浏览器和操作系统环境。最重要的是,Selenium 无法测试所有 Web 应用程序,例如需要与本地设备交互的应用程序。
Robot Framework
Robot Framework 是一个通用的开源自动化框架。它可以用于测试自动化和机器人过程自动化(RPA)。
Robot Framework 由 Robot Framework 框架基金会支持。许多行业领先的公司在软件开发中使用该工具。
Robot Framework 是开放的和可扩展的。Robot Framework 可以与几乎任何其他工具集成,以创建强大而灵活的自动化解决方案。Robot Framework 可以免费使用,无需支付许可费用。
Robot Framework 有一个简单的语法,利用了人类可读的关键字。它的功能可以通过使用 Python、Java 或许多其他编程语言实现的库来扩展。Robot Framework 有一个丰富的生态系统,由作为单独项目开发的库和工具组成。
QTP
QTP 是一种自动化功能测试工具,可帮助测试人员执行自动化测试,以识别与测试中应用程序的预期结果相反的任何错误、缺陷或差距。它由 Mercury Interactive 设计,后来被惠普和现在的 MicroFocus 收购。QTP 的完整形式是 QuickTest Professional,而 UFT 意味着统一功能测试。
最容易上手的 Web 自动化测试工具
工具有很多,但是要说最容易上手的 Web 自动化测试工具,那应该就是 Selenium 了,Selenium 的优点有很多:
- Selenium 是开源的,可以阅读源码学习并拓展;
- Selenium 是跨平台的,支持 linux、windows、mac 等操作系统;
- Selenium 兼容性强,支持一些主流浏览器,例如Firefox、Chrome、IE、Safari 等;
- Selenium 支持多种语言,例如 Python、Java、C#、JavaScript、Ruby、PHP 等;
Selenium 为你提供了许多现成的 API 供你使用,你根本不需要自己去写:
- Selenium RC:使 Selenium 支持多个浏览器;
- Selenium IDE:用于录制、回放;
- Selenium Grid:使 Selenium 支持多机器运行;
- Selenium Webdriver:使 Selenium 能控制浏览器;
Selenium 环境配置
Selenium 的环境配置也非常简单。
- 配置 Selenium 的环境
- 配置 Maven 的环境
然后 Selenium 需要搭配 Python 进行使用:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
browser = webdriver.Chrome()
try:
browser.get('https://www.baidu.com')
input = browser.find_element_by_id('kw')
input.send_keys('Python')
input.send_keys(Keys.ENTER)
wait = WebDriverWait(browser,10)
wait.until(EC.presence_of_element_located((By.ID,'content_left')))
print(browser.current_url)
print(browser.get_cookies())
print(browser.page_source)
finally:
browser.close()
Selenium 可以搭配 Python 进行 Dom 节点的获取:
- id选择器:find_element_by_id
- class选择器:find_elements_by_css_selector
- xpath选择器:find_element_by_xpath
- browser:浏览器对象
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element_by_id('q')
input_second = browser.find_elements_by_css_selector('#q')
input_third = browser.find_element_by_xpath('//*[@id="q"]')
print(input_first,input_second,input_third)
browser.close()
API 测试
进行完 UI 的测试,我们还需要对 API 进行测试,因为 API 是前端必不可少的一部分,没有 API ,那前端页面将得不到有效的渲染。
我们可以借助一些 API 工具来进行测试,比如 Apifox。
使用 Apifox 进行 API 自动化测试
创建请求、设置预期、单个测试
我们需要创建一个请求,接着设置必要参数 接口名、接口路径、接口请求方法。
并且要设置测试的条件,比如 断言、脚本,我这里通过脚本的形式来做测试,判断数据的正确性,看返回的数据能不能达到我的预期。
我们可以单个单个接口地去测试,比如像我这样,直接去发送一个请求,但是如果有几十个接口,那我不就要测 50 遍,太麻烦了~
自动化测试
Apifox 提供给我们自动化测试的功能,我们只需要将你的所有接口导入到测试用例里面,就可以通过运行测试用例,来进行批量接口的测试。。
当然,我们需要填写一些运行的参数,比如循环数、延迟数、环境、线程数等等。
点击运行之后,可以进行批量的接口测试,并得到:
- 整体的测试结果
- 每个接口的测试结果
关于Apifox
欢迎体验一下,完全免费的哦:在线使用 Apifox
Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。
Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。
个人使用体验还是不错的,推荐使用~
知识扩展: