1.1 简介
TestComplete是SmartBear公司推出的企业级UI自动化测试工具,支持Windows、Web、移动(iOS/Android)多平台应用测试,涵盖原生应用、混合应用、Web应用等类型。它融合可视化录制与多语言脚本编写能力,兼容Python、JavaScript等语言,是企业级自动化测试项目的重要选择。
1.2 特点
多技术栈兼容,支持.NET、Java、WPF、HTML5、React、Vue等主流开发技术,无需为不同技术栈单独选型。
智能对象识别引擎,可稳定识别动态变化UI元素,通过内在特征定位,降低脚本维护成本。
可视化编辑器与脚本编辑器结合,非技术人员可快速创建用例,高级用户能编写复杂逻辑。
内置丰富测试报告与分析功能,支持与Jenkins、JIRA等DevOps工具集成,实现测试流程闭环。
1.3 安装
TestComplete为商业化工具,需从SmartBear官网下载Windows版本,提供免费试用期限。安装时配置许可证信息,试用版可体验完整功能,正式使用需购买商业许可证。
https://smartbear.com/product/testcomplete/
1.4 示例:Windows计算器减法操作(Python脚本)
注:需在TestComplete中创建Python项目,通过对象浏览器定位计算器控件后编写脚本。
# 公众号:AllTests软件测试
import sys
import os
sys.path.append(os.path.abspath(r"TestComplete安装路径\Bin\Extensions\Python"))
import TestComplete as tc
def calculator_subtraction():
# 启动Windows计算器应用
calc_app = tc.Application.Launch("calc.exe")
# 获取计算器主窗口
calc_window = calc_app.Window("CalcFrame", "计算器")
calc_window.Activate()
# 定位并点击数字"5"
calc_window.Button("num5").Click()
# 点击减号"-"
calc_window.Button("op_Subtract").Click()
# 点击数字"3"
calc_window.Button("num3").Click()
# 点击等号"="
calc_window.Button("eq").Click()
# 获取计算结果
result = calc_window.Edit("Edit").Text
print(f"计算结果:5-3={result}")
# 关闭计算器
calc_app.Close()
if __name__ == "__main__":
calculator_subtraction()
关键说明:TestComplete通过对象映射管理UI元素,控件识别名(如"num5")可从对象浏览器获取,支持拖拽控件到脚本编辑器自动生成定位代码。
2.1 简介
SikuliX是基于图像识别的跨平台UI自动化工具,支持Windows、macOS和Linux系统。它通过识别屏幕图像元素实现自动化操作,无需关注控件属性或应用内部结构,适用于Flash应用、自定义控件等传统定位困难的场景。
2.2 特点
图像识别驱动,无需深入了解应用代码,降低脚本编写门槛,非技术人员也能快速上手。
跨平台兼容性强,同一套脚本可在不同操作系统运行(需确保图像元素一致)。
支持鼠标点击、拖拽、键盘输入、窗口切换、截图对比等多种交互操作。
可与Python、Java集成,也提供独立图形化IDE,支持录制操作生成脚本。
2.3 安装
SikuliX有两种使用方式:
独立IDE:从SikuliX官网下载对应系统安装包,直接安装即可使用图形化界面编写脚本。
官网地址:
https://sikulix-2014.readthedocs.io/en/latest/
Python集成:需先配置Java环境,再通过pip安装Python库:
pip install sikulixapi
2.4 示例:图像识别实现记事本操作
注意:
需提前截取"记事本图标"(notepad_icon.png)、"保存输入框"(save_input.png)、"保存按钮"(save_btn.png)等关键图像。
# 公众号:AllTests软件测试
from sikulix import *
import time
# 初始化SikuliX屏幕对象
screen = Screen()
# 1. 双击桌面记事本图标打开应用
screen.doubleClick("notepad_icon.png")
time.sleep(2) # 等待窗口打开
# 2. 在记事本中输入文本
screen.type("SikuliX 图像识别自动化示例\n适用于控件属性难以获取的场景。")
time.sleep(1)
# 3. 按Ctrl+S触发保存
screen.hotkey("ctrl", "s")
time.sleep(2) # 等待保存对话框弹出
# 4. 输入文件名并保存
screen.click("save_input.png")
screen.type("sikuli_demo.txt")
screen.click("save_btn.png")
time.sleep(2)
# 5. 关闭记事本
screen.hotkey("alt", "f4")
关键说明:可设置图像相似度阈值(如screen.click("icon.png", 0.8)),平衡识别准确性与容错性,阈值范围0-1。
3.1 简介
Selene是一款基于Selenium封装的Python UI自动化库,旨在简化Selenium的API调用,降低自动化脚本的编写复杂度。它保留了Selenium的核心功能,同时增加了自动等待、内置断言、简洁定位等特性,让Web UI自动化测试更高效、更易维护,适合追求代码简洁性的测试场景。
3.2 特点
API简洁直观,通过链式调用简化多步操作,代码可读性更高(如s("#kw").set_value("UI自动化").press_enter())。
内置智能等待机制,自动等待元素可交互状态,无需手动添加大量time.sleep(),提升脚本稳定性。
集成丰富的断言方法(如should().have.text()、should().be.visible()),简化结果验证逻辑。
支持多种元素定位方式,兼容Selenium的定位策略,同时扩展了更便捷的定位语法。
3.3 安装
使用pip命令即可安装Selene,需确保已安装Selenium及对应浏览器驱动:
pip install selene
3.4 示例:百度搜索结果验证
# 公众号:AllTests软件测试
from selene import browser, be, have
from selene.support.shared import config
import time
# 配置浏览器(默认使用Chrome,需提前安装ChromeDriver)
config.browser_name = "chrome"
config.window_width = 1920
config.window_height = 1080
def baidu_search_verify():
# 打开百度首页
browser.open("https://www.baidu.com/")
# 定位搜索框,输入关键词并回车
browser.element("#kw").should(be.blank).set_value("Selene UI自动化").press_enter()
# 等待搜索结果加载,验证结果中包含目标文本
browser.element("#content_left").should(have.text("Selene"))
# 截图保存当前页面
browser.save_screenshot("baidu_search_selene.png")
# 等待2秒查看结果
time.sleep(2)
# 关闭浏览器
browser.quit()
if __name__ == "__main__":
baidu_search_verify()
关键说明:Selene的should()方法会自动等待断言条件满足(默认超时10秒),无需手动处理元素加载延迟;browser为全局对象,简化了浏览器实例的管理。
4.1 简介
Cypress是一款基于JavaScript的前端自动化测试工具,专注于Web应用的端到端(E2E)测试。它摆脱了传统Selenium的架构限制,直接在浏览器中运行测试代码,提供实时重载、时间旅行、自动等待等强大功能,是现代前端项目自动化测试的热门选择。
4.2 特点
实时重载与时间旅行:修改测试代码后自动重新运行,支持回溯测试执行过程中的每一步DOM状态,便于调试。
自动等待机制:智能等待元素加载和可交互,无需手动添加等待语句,大幅减少测试不稳定问题。
内置断言库:集成Chai、Sinon等断言工具,支持BDD和TDD风格断言,语法简洁直观。
全栈测试能力:不仅支持端到端测试,还可用于组件测试、API测试,实现一站式测试解决方案。
易集成性:支持与Jenkins、GitHub Actions等CI/CD工具集成,自动生成测试报告和截图录像。
4.3 安装
# 初始化npm项目(若未初始化)
npm init -y
# 安装Cypress
npm install cypress --save-dev
4.4 示例:百度搜索端到端测试
npx cypress open
2. 在Cypress窗口中点击"New Spec File",创建baidu_search.cy.js测试文件,内容如下:
// 公众号:AllTests软件测试
// 百度搜索端到端测试用例
describe("百度搜索功能测试", () => {
it("搜索关键词并验证结果", () => {
// 打开百度首页
cy.visit("https://www.baidu.com/");
// 定位搜索框,输入"Cypress自动化"并提交
cy.get("#kw").should("be.visible").type("Cypress自动化").type("{enter}");
// 等待搜索结果加载,验证结果中包含目标文本
cy.get("#content_left").should("contain", "Cypress");
// 验证第一个搜索结果标题
cy.get(".result-op .c-container h3").first().should("be.visible");
});
});
3. 在Cypress窗口中点击创建的测试文件,即可自动运行测试并查看执行过程。
关键说明:Cypress的cy.get()方法会自动等待元素出现(默认超时4秒,可配置),无需手动处理异步加载;测试执行过程中会自动截图,失败时生成详细的错误日志和DOM快照。
5.1 简介
Ranorex是Ranorex GmbH推出的企业级UI自动化测试工具,支持Windows、Web、移动(iOS/Android)三大平台,可对原生应用、混合应用、Web应用及嵌入式系统进行自动化测试。它以强大的对象识别能力和易用的可视化设计器为核心,适合复杂企业级项目的自动化测试需求。
5.2 特点
智能对象识别:采用专利的RanoreXPath技术,可穿透复杂控件层级精准定位元素,即使UI结构变化也能稳定识别,降低脚本维护成本。
多语言支持:支持C#、VB.NET、Python等编程语言,同时提供可视化测试设计器,非技术人员可通过拖拽组件创建测试用例。
跨平台测试:一套脚本可适配Windows桌面、Web浏览器(Chrome/Firefox/Edge等)及移动设备,支持真实设备与模拟器/仿真器。
全流程测试能力:支持数据驱动测试、关键字驱动测试,内置缺陷跟踪与测试报告功能,可与Jenkins、JIRA、TestRail等工具深度集成。
5.3 安装
Ranorex为商业化工具,需从Ranorex官网下载Windows版本(仅支持Windows系统),提供30天免费试用。安装过程中需注册账号,试用版可体验全部核心功能,正式使用需根据团队规模购买相应许可证。
官网地址:
https://www.ranorex.com/
5.4 示例:Windows记事本自动化操作(Python脚本)
注:需在Ranorex Studio中创建Python项目,通过Ranorex Spy工具定位记事本控件后编写脚本。
# 公众号:AllTests软件测试
import sys
import os
# 引入Ranorex相关库
sys.path.append(os.path.abspath(r"Ranorex安装路径\Bin\Python"))
from Ranorex import *
def notepad_automation():
# 启动Windows记事本应用
notepad_app = Application.Launch("notepad.exe")
# 通过RanoreXPath定位记事本主窗口
notepad_window = notepad_app.FindSingle("/form[@title='无标题 - 记事本']")
notepad_window.Activate()
# 定位文本编辑区域,输入内容
edit_area = notepad_window.FindSingle("/edit[@class='Edit']")
edit_area.Text = "Ranorex 企业级UI自动化示例\n支持多平台、复杂控件定位。"
# 按Ctrl+S保存文件
Keyboard.PressKeys("^s")
# 定位保存对话框
save_dialog = Application.FindSingle("/form[@title='另存为']")
# 定位文件名输入框,输入保存名称
save_input = save_dialog.FindSingle("/edit[@id='1001']")
save_input.Text = "ranorex_notepad_demo.txt"
# 点击保存按钮
save_btn = save_dialog.FindSingle("/button[@text='保存']")
save_btn.Click()
# 等待保存完成
Delay(2000)
# 关闭记事本
notepad_window.Close()
if __name__ == "__main__":
notepad_automation()
关键说明:Ranorex Spy工具可生成元素的RanoreXPath定位表达式,脚本中通过FindSingle()方法定位元素;Delay()方法用于等待异步操作完成,也可使用内置的智能等待机制替代固定延迟,提升脚本稳定性。
6.1 简介
WinAppDriver(Windows Application Driver)是微软官方开源的Windows桌面应用自动化测试工具,基于WebDriver协议实现,支持Windows 10及以上系统的UWP(通用Windows平台)应用、Win32应用和WPF应用。它提供了与Selenium相似的API,降低了熟悉Web自动化开发者的学习成本,是Windows桌面应用自动化的官方推荐方案。
6.2 特点
官方原生支持:由微软开发维护,与Windows系统及应用兼容性更佳,能稳定支持系统级控件交互。
WebDriver协议兼容:API设计遵循WebDriver标准,语法与Selenium高度相似,便于跨平台自动化脚本迁移。
多应用类型覆盖:支持UWP、Win32、WPF等主流Windows应用架构,满足不同开发技术栈的测试需求。
可集成性强:支持与Python、Java、C#等编程语言结合,也可与TestNG、pytest等测试框架及Jenkins等CI工具集成。
6.3 安装
安装步骤如下:
1.从WinAppDriver GitHub Releases下载最新版本的安装包,完成安装后启动服务(默认端口4723)。
下载地址:
https://github.com/microsoft/WinAppDriver/releases
2.开启Windows开发者模式:进入“设置-更新和安全-开发者选项”,启用“开发者模式”。
3.安装Python客户端库(基于Selenium库扩展):
pip install selenium
6.4 示例:Windows计算器加法操作
# 公众号:AllTests软件测试
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
# 配置Desired Capabilities
desired_caps = {}
desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"# 计算器应用ID
desired_caps["platformName"] = "Windows"
desired_caps["deviceName"] = "WindowsPC"
# 连接WinAppDriver服务
driver = webdriver.Remote(
command_executor="http://127.0.0.1:4723/wd/hub",
desired_capabilities=desired_caps
)
# 等待计算器启动
time.sleep(2)
# 定位并点击数字"2"
driver.find_element(By.NAME, "二").click()
# 点击加号"+"
driver.find_element(By.NAME, "加").click()
# 定位并点击数字"3"
driver.find_element(By.NAME, "三").click()
# 点击等号"="
driver.find_element(By.NAME, "等于").click()
# 获取计算结果(结果显示在"显示"控件中)
result = driver.find_element(By.ACCESSIBILITY_ID, "CalculatorResults").text
# 提取结果文本(默认格式为"显示 5",需截取数字部分)
result_num = result.split(" ")[1]
print(f"计算结果:2+3={result_num}")
# 关闭应用和驱动
time.sleep(2)
driver.quit()
关键说明:获取Windows应用的App ID可通过PowerShell命令Get-StartApps查询;控件定位支持NAME、ACCESSIBILITY_ID、XPATH等方式,可使用Windows SDK中的“Inspect.exe”工具查看控件属性。
7.1 简介
Katalon Studio是Katalon LLC推出的低代码UI自动化测试工具,基于Selenium和Appium核心开发,支持Web、移动(iOS/Android)、桌面(Windows)及API测试。它提供可视化录制与脚本编辑双模式,无需复杂环境配置,开箱即用,适合测试团队快速落地自动化测试,尤其受非专业开发背景的测试人员青睐。
7.2 特点
低代码门槛:可视化测试用例设计器支持拖拽组件与操作录制,非技术人员可快速创建测试用例,同时支持Groovy/Java脚本编写复杂逻辑。
多平台一体化:一套工具覆盖Web、移动、桌面应用测试,共享对象仓库与测试数据,避免多工具切换成本。
内置丰富功能:集成对象仓库(统一管理UI元素)、数据驱动测试、关键字库、测试报告生成等,无需额外集成第三方工具。
易集成与扩展:支持与Jenkins、JIRA、Git等DevOps工具集成,提供开放API接口,可自定义插件扩展功能。
7.3 安装
Katalon Studio提供免费版(功能满足大部分测试需求)和商业版,安装步骤如下:
1.从Katalon官网下载对应系统(Windows/macOS/Linux)的安装包。
下载地址:
https://katalon.com/download
2.双击安装包,按向导完成安装,无需额外配置浏览器驱动或环境变量。
3.启动后使用Katalon账号登录(免费注册),即可开始使用。
7.4 示例:Web百度搜索自动化测试(可视化+脚本结合)
1.新建测试用例:打开Katalon Studio,点击“New Test Case”,命名为“BaiduSearchTest”。
2.录制测试步骤:点击工具栏“Record”按钮,选择Chrome浏览器,输入“https://www.baidu.com”,完成以下操作后停止录制:
在搜索框输入“Katalon Studio”
点击搜索按钮
验证搜索结果包含“Katalon”
3.生成的脚本(Groovy语言,可在“Script”标签页查看):
// 公众号:AllTests软件测试
importcom.kms.katalon.core.webui.keyword.WebUiBuiltInKeywordsasWebUI
// 打开百度首页
WebUI.openBrowser('https://www.baidu.com/')
// 最大化浏览器窗口
WebUI.maximizeWindow()
// 定位搜索框并输入关键词
WebUI.setText(findTestObject('Object Repository/Baidu/SearchBox'), 'Katalon Studio')
// 点击搜索按钮
WebUI.click(findTestObject('Object Repository/Baidu/SearchButton'))
// 等待搜索结果加载
WebUI.waitForPageLoad(10)
// 验证结果中包含目标文本
WebUI.verifyTextPresent('Katalon', false)
// 关闭浏览器
WebUI.closeBrowser()
4.执行测试用例:点击工具栏“Run”按钮,选择浏览器,即可自动执行并在“Console”和“Report”标签页查看结果。
关键说明:Katalon的“Object Repository”会自动保存录制的UI元素,支持批量管理与复用;脚本中的findTestObject()方法用于调用对象仓库中的元素,避免硬编码定位表达式,提升脚本维护性。
扫码关注
获取更多精彩
alltests

