
1、TestComplete
1.1 简介
TestComplete是SmartBear公司推出的企业级UI自动化测试工具,支持Windows、Web、移动(iOS/Android)多平台应用测试,涵盖原生应用、混合应用、Web应用等类型。它融合可视化录制与多语言脚本编写能力,兼容Python、JavaScript等语言,是企业级自动化测试项目的重要选择。
1.2 特点
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、SikuliX
2.1 简介
SikuliX是基于图像识别的跨平台UI自动化工具,支持Windows、macOS和Linux系统。它通过识别屏幕图像元素实现自动化操作,无需关注控件属性或应用内部结构,适用于Flash应用、自定义控件等传统定位困难的场景。
2.2 特点
2.3 安装
SikuliX有两种使用方式:
pip install sikulixapi2.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、Selene
3.1 简介
Selene是一款基于Selenium封装的Python UI自动化库,旨在简化Selenium的API调用,降低自动化脚本的编写复杂度。它保留了Selenium的核心功能,同时增加了自动等待、内置断言、简洁定位等特性,让Web UI自动化测试更高效、更易维护,适合追求代码简洁性的测试场景。
3.2 特点
3.3 安装
使用pip命令即可安装Selene,需确保已安装Selenium及对应浏览器驱动:
pip install selene3.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、Cypress
4.1 简介
Cypress是一款基于JavaScript的前端自动化测试工具,专注于Web应用的端到端(E2E)测试。它摆脱了传统Selenium的架构限制,直接在浏览器中运行测试代码,提供实时重载、时间旅行、自动等待等强大功能,是现代前端项目自动化测试的热门选择。
4.2 特点
4.3 安装
Cypress基于Node.js,需先安装Node.js(建议v14及以上版本),再通过npm安装:
# 初始化npm项目(若未初始化)
npm init -y
# 安装Cypress
npm install cypress --save-dev4.4 示例:百度搜索端到端测试
1. 启动Cypress:
npx cypress open2. 在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、Ranorex
5.1 简介
Ranorex是Ranorex GmbH推出的企业级UI自动化测试工具,支持Windows、Web、移动(iOS/Android)三大平台,可对原生应用、混合应用、Web应用及嵌入式系统进行自动化测试。它以强大的对象识别能力和易用的可视化设计器为核心,适合复杂企业级项目的自动化测试需求。
5.2 特点
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、WinAppDriver
6.1 简介
WinAppDriver(Windows Application Driver)是微软官方开源的Windows桌面应用自动化测试工具,基于WebDriver协议实现,支持Windows 10及以上系统的UWP(通用Windows平台)应用、Win32应用和WPF应用。它提供了与Selenium相似的API,降低了熟悉Web自动化开发者的学习成本,是Windows桌面应用自动化的官方推荐方案。
6.2 特点
6.3 安装
安装步骤如下:
1.从WinAppDriver GitHub Releases下载最新版本的安装包,完成安装后启动服务(默认端口4723)。
下载地址:
https://github.com/microsoft/WinAppDriver/releases
2.开启Windows开发者模式:进入“设置-更新和安全-开发者选项”,启用“开发者模式”。
3.安装Python客户端库(基于Selenium库扩展):
pip install selenium6.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、Katalon Studio
7.1 简介
Katalon Studio是Katalon LLC推出的低代码UI自动化测试工具,基于Selenium和Appium核心开发,支持Web、移动(iOS/Android)、桌面(Windows)及API测试。它提供可视化录制与脚本编辑双模式,无需复杂环境配置,开箱即用,适合测试团队快速落地自动化测试,尤其受非专业开发背景的测试人员青睐。
7.2 特点
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”,完成以下操作后停止录制:
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软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!