随着国产化软硬件的逐步发展,LoongArch 指令集与银河麒麟操作系统为构建高效、安全的测试环境提供了新的选择。本文将以国产绘图工具 Kolourpaint 为例,介绍如何在 LoongArch 平台上使用 CukeTest 工具进行 Qt 应用的自动化测试,帮助开发者了解如何在国产化环境中高效进行软件测试。
LoongArch是由龙芯自主研发的高性能、低功耗指令集,广泛应用于国产化信息系统;而银河麒麟操作系统则具有丰富的应用生态,能够与 LoongArch 硬件平台实现完美兼容。通过这两个平台,我们不仅可以保障系统安全,还能为现代软件测试提供高效的环境支持。
本文测试的对象是基于Qt开发的绘图工具 Kolourpaint,目标是验证其在 LoongArch 平台上的稳定性和性能表现。我们将重点测试应用的基本绘图功能以及颜色填充功能,确保操作界面响应迅速、效果符合预期。
为了验证 Kolourpaint 的功能,我们设计了以下测试用例场景:
下图展示了 Kolourpaint 的基本界面:
测试环境基于银河麒麟操作系统,已适配 LoongArch 架构,配置详情如下:
架构与硬件
应用与工具
在正式录制测试脚本之前,我们需要先创建一个新的 CukeTest 项目:
录制脚本是测试开发的重要环节。通过 CukeTest 的录制功能,可以轻松捕捉用户操作并生成相应的自动化脚本:
Kolourpaint
),其它选项保持默认。启动录制
开始录制
按钮,CukeTest 将自动启动 Kolourpaint 应用,并记录所有用户操作。执行测试操作
结束录制
停止
按钮,即可生成自动化测试脚本。生成的 Python 脚本示例如下:
import os
from leanproAuto import RunSettings, QtAuto
def recording():
RunSettings.set({"slowMo": 1000, "reportSteps": True})
modelQt = QtAuto.loadModel(os.path.dirname(os.path.realpath(__file__)) + "/recording.tmodel")
# 启动 Qt 应用 "kolourpaint"
QtAuto.launchQtProcessAsync("kolourpaint")
# 等待应用启动
modelQt.getApplication("kolourpaint").exists(10)
# 执行绘图操作
modelQt.getButton("矩形").click()
modelQt.getGeneric("mainView").drag(21, 33)
modelQt.getGeneric("mainView").drop(170, 122)
modelQt.getButton("填充").click()
modelQt.getTableItem("TableItem").click(12, 9)
modelQt.getGeneric("mainView").click(72, 82)
modelQt.getButton("椭圆").click()
modelQt.getGeneric("mainView").drag(116, 144)
modelQt.getGeneric("mainView").drop(336, 238)
modelQt.getButton("填充").click()
modelQt.getTableItem("TableItem1").click(19, 10)
modelQt.getGeneric("mainView").click(207, 197)
if __name__ == "__main__":
recording()
录制完成后,下一步是验证自动化脚本的准确性,并将其整合进整个测试流程:
脚本执行
运行脚本
按钮,观察 CukeTest 的回放操作是否与预期一致。操作回放
slowMo
设置为 1000 毫秒),可根据需要调整为 0 以加快执行速度。录制脚本转换成场景
即可生成相应文件。通过 CukeTest 的项目运行功能,可以批量执行所有测试用例:
运行项目
按钮,所有符合 Pytest 规范的测试脚本将依次执行。本文详细介绍了如何在龙芯 LoongArch 平台上使用 CukeTest 工具进行 Qt 应用的自动化测试。值得一提的是,这套测试方案具备良好的跨平台兼容性,基于CukeTest开发的测试脚本不仅能适配龙芯架构,更能无缝迁移至其它系统,如x86银河麒麟、统信UOS以及Windows系统。通过项目创建、脚本录制与验证、以及脚本整合等过程,验证了国产化测试环境在提高测试效率、保障安全性方面的优势。利用基于国产软硬件平台的自动化测试方案,不仅能够降低开发与维护成本,还能为开发团队提供一个稳定且自主可控的测试环境。