文 | 中国农业银行软件研发中心 系统支持部 王晓昕 程伟静 胡莉莉
Testin Pro(云测平台)是一款移动端自动化测试平台工具,帮助用户实现移动端测试自动化,是一套设备统一调配、软硬件一体化的移动端测试方案。Testin Pro具有在线录制脚本、远程真机调试、自动化执行任务等功能,可满足自动化敏捷测试需求以及其他各类场景的自动化测试需求,本文将从Testin Pro的部署方案、主要功能、与Devops工具链对接三个方面加以介绍。
一、Testin Pro的部署方案
1.1 网络拓扑
如图1-1所示,终端用户(测试人员)通过办公网络和交换机访问Testin服务器。其中,Testin服务器通过交换机连接若干Android控制器和iOS控制器,每台控制器可以连接多个USB Hub,每台USB Hub可以连接1-6台移动终端(手机、Pad等),这些移动终端通过无线AP连接到行内测试网络。
1.2 服务器配置
服务器采用Redhat Linux,通过docker部署应用。4台服务器分别部署基础的应用程序、数据库、文件、应用代理等服务:
File server(文件服务器):包含filetracker和filestorage(用来存放脚本和报告数据)、portmap(端口映射)、remote(远程真机)、auto_web(在线录制);
Web server(Web服务器):包含proxy-openapi(客户端api)、assistant(远程真机agent)、adminserver(web管理端后台)、fileuploadserver(文件上传)、webserver(web后台);
Db server(数据库服务器):包含redisserver、mongoserver、mysqlserver;
App server(应用代理服务器):包含rpcmaster、appserver。
1.3 业务架构
如下图1-2所示,平台使用者分为三大类型:
测试用户登录私有云入口,连接到云测平台的四大模块,分别是应用管理模块、测试管理模块、自动化管理模块、项目管理模块,可实现平台八项功能,包括性能测试、兼容性测试、功能测试、稳定性测试、远程真机、上线后拨测、版本管理、项目管理。
管理员用户通过管理端平台入口连接到管理员平台,可以实现九个方面的管理:企业项目管理、项目权限管理、企业用户管理、用户权限管理、设备运行管理、任务执行管理、云平台监控、异常管理、数据库配置管理。
超级管理员在资源池中可以管理网络资源、服务资源、数据库资源和设备资源,比较常用的操作有重启后台测试设备、查看设备网络状态等。
二、Testin Pro的主要功能
2.1 online脚本录制
Testin平台的终端设备在系统中脚本录制页面和远程真机页面均有映射屏,测试人员可以通过鼠标和键盘的操作来模拟对手机页面的点击、滑动、输入等操作。录制过程可以选择控件识别、图片识别和OCR识别三种方式,每一步操作都会记录到右侧的脚本编辑页面。另外,为了满足自动化测试的复杂业务逻辑,Testin还封装了一些内部操作,如设置等待时间、增加if-else逻辑判断、循环、断言、性能埋点等操作。
2.2 自动化执行
Testin支持三种任务类型建立方式:
1)自动化功能测试:云端脚本执行,任务快速执行,支持数据源选择,深度截图对比,性能分析,报告多维度展现。
2)自动化兼容测试:安装/启动/monkey/卸载,支持脚本执行,错误日志/Crash/ANR,性能数据,monkey截图,报告以设备维度展现。
3)自动化拨测:批量任务定时发起,支持多网络类型,发起批次可配置,批次间隔可配置,报告以批次维度统计,报告支持excel导出。
2.3 测试报告查看
根据用户所选的执行方式的不同,Testin分别提供了三类报告供用户查看:
1)功能报告包含任务基本信息及统计图表,并从报告概况、脚本执行报告、脚本问题分析、设备执行报告、脚本截图横向对比等多个维度展现统计内容,还可以回放设备执行每个脚本的视频。
2)兼容报告页顶端任务属性与功能测试相同,报告展现分为测试概况、错误日志、性能数据、截图对比四个维度。
3)拨测报告以轮次为统计单元,展示拨测概况信息及各性能埋点的时延与上下行流量图表数据及具体到设备的详细数据。
三、与Devops工具链对接
ATP平台是农行自动化测试统一管理平台,是行内devops工具链的一环。行内将各处室使用的自动化测试工具在ATP平台实现统一管理,不同自动化测试工具录制生成不同语言、不同格式的测试脚本,ATP平台将这些脚本转化成行内统一格式存储。在进行自动化测试案例运行时,ATP平台将行内格式转换成对应测试工具可执行脚本进行案例执行。
目前,Testin Pro已完成与ATP平台的对接,测试人员可以直接在ATP平台进行移动端测试案例的编辑和执行。同时我行还在推进ATP与微软TFS的集成工作,TFS作为我行DevOps工具链集成的核心总线,未来将实现一体化端到端的DevOps流水线调度能力,其中也包括对Testin Pro的一体化调度。
下面,简单描述下Testin Pro与ATP平台的对接方案:
1)在ATP平台输入Testin Pro平台的用户名和密码,对密码进行MD5加密,将账号和加密后的密码通过登录报文发送到Testin Pro平台,获取登录令牌。
2)利用登录令牌和账号信息,发送报文查询用户归属项目组,并在前台展示给用户,供选择。
3)利用登录令牌和项目号,发送报文查询该项目对应的所有待测应用,将所有的应用信息展示在前台,供用户选择。
4)利用登录令牌、项目号、应用版本(ios,andriod),发送报文查询该应用对应的所有自动化测试执行的脚本列表。
5)利用登录令牌、项目号、应用版本(ios,andriod),发送报文查询该应用可运行的设备列表。
6)将查询到的脚本号列表映射到ATP平台上的案例(一个脚本对应一条案例),将案例信息在前台展示给用户,供选择。
7)用户选定项目、应用、案例、设备后,发送报文进行测试任务创建,获取到任务号。
8)通过任务号查询该任务的执行结果,并在ATP平台进行结果展示。
其中,步骤6实现了脚本和案例的相互转化,在ATP平台只存储案例详细信息和对应的脚本号。这样的好处是:
1)ATP平台可不区分测试工具,管理统一格式的案例,该格式实现了对象和定位分离,提高了可维护性和易读性。
2)对于统一格式的案例,ATP平台实现了案例的自动生成,例如:基于某一业务流程确定的测试案例,可通过给该案例配置不同的参数值,实现案例的衍生,节约录制成本,提高自动化测试效率。
四、总结
TestinPro作为我行采购的移动端自动化测试服务平台,支持兼容性测试、功能测试、性能测试等,有效满足测试人员对多种型号终端的测试需求,并通过平台统一管理提高了设备的复用效率,节约了测试成本。在DevOps工具链对接方面,我行旨将TestinPro集成到自动化测试统一管理平台,最终实现不同测试工具的统一管理。
【作者简介】王晓昕
中国农业银行研发中心系统支持部 测试工程师 目前从事自动化测试技术研究以及DevOps工具链建设工作,热爱工作,热爱生活,耕耘于分秒,收获于细微。