測試開發之自动化篇——自動化測試框架设计
原創-
2022-09-01 08:59:00
-
4169
本篇目錄
今天,给大家介绍如何进行自動化測試框架的设计。这里所说的框架,是建立在一些主流类库、框架或工具的基础上的,自行研发的、适合公司的自動化測試资产。
如今有很多UnitTest測試框架,已經提供了數據驅動、用戶並發、斷言、報告等優異的特性,完全可以被用來進行單元測試之外的功能、性能、接口等方面的測試,建議大家可以基于他們來實現。
这里给出我们建议的、自動化測試框架的分层结构,下面将围绕此给大家逐一做介绍。
測試用例腳本
在此实现业务的自動化測試,这一层面的脚本同手工测试用例具有最直接的对应关系。
公共業務腳本
一些提取出的、可在业务层面复用的函数、类库或脚本。比如网上购物系统的登录、加购物车、下单、付款等常用的业务操作。也可包括一些应用系统层面、或有安全限制的Knowledge Base的实现,如笔者曾经在测试电子支付系统时使用的、向全球央行打款的命令行工具,其由公司核心人员开发,执行于安全性极高的隔离环境中。
腳本解析
用于解析类似關鍵字驱动(Data Driver)、自然语言理解(NLU)等更高形式的测试脚本,将其转换成某种编程语言的可执行代码。如解析QTP關鍵字视图的脚本到VBScript代码,转换RobotFramework自定义關鍵字的脚本到Python3代码的过程。
數據管理
实现自動化測試的數據管理和数据驱动。比如,大家习惯用Excel维护二维的表格数据,在脚本中读取后再迭代引用;也可以类似前一篇文章中的例子,为数据文件或ZenData数据接口编写DataProvider,然后在脚本中使用Java标注的形式,将数据循环、逐条地”喂给“业务测试方法。
執行調度
分布式測試框架中,用于控制測試執行發生在什麽樣的系統、設備或節點等環境上。可以類似Jenkins的代理,執行測試于不同的遠程機器中;也可以類似禅道的ZAgent開源項目,執行測試于指定特征的虛擬機、容器或手機設備中。
結果斷言
通常是对一些主流测试框架的断言和日志特性做封装,使其用起来更方便、更适合公司的业务。比如,在用例做验证点检查的同时,打印、朝数据库存储、向日志系统推送指定格式的、更为详尽的消息,以利于后续的統計分析。
日志消息
除了上述断言有关的、验证点检查所输出的 期待结果、实际结果、通过与否等信息,也可以包括:基于UI的自動化測試中、每个步骤的控件定位结果、操作结果;基于协议的接口测试中,请求、响应的消息和状态,如此等等各类有益于排错和分析的日志。
統計分析
对测试步骤、检查点、用例、测试集、执行计划等各个层面的输出结果做采集和分析,生成完整的自動化測試统计报告。
測試資産管理
集中管理不同类型的测试资产,包括物理服務器、虚拟测试机、手机或嵌入式设备,甚至是AI测试中的 语音识别(ASR)语料、自然语言理解(NLU)说法、人脸识别的图库。
基礎工具類庫
一些常用的、特定編程語言層面的類庫。如字符串處理、文件解析、協議請求、消息發送等等。
基礎框架和工具
基于的第三方自動化測試类库、框架或工具来实现类似测试集组织、(分布式)执行调用、数据提供者等功能。如上文提及的JUnit、TestNG、Selenium、Appium、JMeter、QTP等优秀的开源和商业项目。大部分时候,我们不需要重复去造基础的轮子。
以上所述的模块和功能,算是囊括了一个自動化測試平台的方方面面。实际工作中,大家可以按需、逐步的进行实践,适合的永远是最好的。
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手冊 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:丁芝 電話:17663906485 微信:17663906485 Q Q:1481227768北京、上海、深圳分部