微信html5测试工具,[腾讯 TMQ] FAT (Fast-AutoTest) —专业服务于微信 H5/ 小程序 UI 自动化测试...

本文介绍了团队在面对H5和小程序测试工具缺失的挑战时,自主研发FAT框架的过程。通过调研现有工具的不足,发现Chromedebuggingprotocol的关键技术,FAT采用分层设计,支持微信H5页面和小程序的自动化测试,包括控件识别、内容获取和性能监控。文章还对比了FAT与行业工具的优劣,并给出了选择框架的建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

随着项目的发展,许多项目中 H5(特别是微信平台内)以及小程序占比逐渐增多,因此快速建设相关的自动化来提高项目的效率和质量成为了许多项目中的重中之重。

然而目前市面上能完美支持微信 H5 和小程序测试的测试工具是缺失的。因此我们展开了求索之路,并且成功研发了 FAT 框架,来解决这个难题。想了解我们是如何解决 H5/小程序 UI 自动化测试难题的看官们,请听我慢慢讲来。

调研之路

首先团队先对市面上流行的测试工具,包括 Uiautomator、Appium 进行了快速的调研,调研结果如下:

ba7b50a742ef458baec5e40fc6fe1c4e.png

其中 Appium 看起来是支持 H5 的,可是在实际操作使用中,切换页面需要重新建立 chomedriver 通信,控件识别耗时长,稳定性差,严重影响自动化的维护成本,而小程序更是无法支持。

调研的结论让人沮丧,现有工具都不能很好的支持小程序测试。俗话说只要思想不滑坡,办法总比困难多,没有什么可以阻止我们前进的道路!终于在一篇文章中得到了启发,关键技术点的就是—Chrome debugging protocol。

撸起袖子加油干在得到关键信息之后,团队决定自己开搞,立志于提供微信内 H5/小程序 UI 自动化的统一解决方案,于是,FAT(Fast-AutoTest)诞生了!框架整体采用分层设计,API 设计方式参考 WebDriver,框架如下图所示。

fa4cddaa4d13fb1dfd527a57961f8866.png

User Interface(用户交互层):提供给用户所有的界面操作 API(H5 界面及小程序界面),使用者不需要关注框架内部实现,只需要关注自身业务逻辑流程(手工用例流程转换成自动化流程)。

PageOperator(操作解析层):主要用于接收和解析用户命令后传递给下层 Engine 层 Engine( H5&小程序引擎层): 将用户命令传输到手机,并返回结果信息。封装 WebSocket 和单线程池,通过 WebSocket Debug URL 和浏览器内核建立链接,发送 Json 格式的协议到手机端进行用户指定的操作。

搭好了架子后,开始逐步填充功能,调试,优化,FAT(Fast-AutoTest)框架的内容也逐步越来越丰富和完善;并且在团队内的多个产品中进行验证和打磨,不断提高框架的易用性和稳定性。

我们的优势

(1)全面支持微信 H5 页面,能识别常见 H5 控件,能获取页面任意内容(常见的如文字、图片、链接等);

(2)全面支持小程序内控件识别,操作,页面内容获取等;

(3)支持基础的性能测试监控;

(4)支持安卓 Native 页面组合操作使用;

(5)简单的 API 设计,使用门槛低;

(6)提供日志等级开关,方便调试定位。

与业内工具对比如下:

68fc5c70f4575c75b7828ce2bb471537.png

那么如何选择适用于自己项目的工具呢?

如果自动化测试的重点主要是在 web 页面测试,如手机 chrome 页面测试或微信页面测试,自研 FAT 框架在稳定性、易用性还有兼容性会更出色;如果自动化测试的对象是 Hybird App,主要集中于 Native 界面的测试,兼顾 web 页面测试的话,使用 Appium 会更合适。

团队收益

1、使用框架,能快速完成用例到脚本的转化。快速上手,编写简单,即使是没有编码经验的同学也很快学会,我们团队的手工测试的外包合作伙伴经过一个用例的练习后,就能独立完成编写和调试工作,基本功能用例能逐步自动化代替,节约回归时间。

2、初步做过编写脚本时间估算。单个操作步骤用脚本实现花费约 40s(打开页面 5+Chrome 抓控件 5s+ 找目标控件 Xpath 15s+ 写脚本 15s),一条 10 个步骤的用例,用脚本实现时间 400s,一次编写,终生可用,投入产出比还是不错的。

3、经过在团队内各产品的逐渐铺开使用,在效率和质量上都有逐步提升,相关页面覆盖度也在逐步完善中。

如何获取 FAT 呢?

目前我们的工具正在走开源的流程,不久之后大家就可以免费使用 FAT 了,大家敬请期待,多多关注 TMQ 的相关资讯。

关注腾讯移动品质中心 TMQ,获取更多测试干货!

版权所属,禁止转载!!!

### 商城项目的自动化测试实践 #### 测试框架的选择 对于商城项目而言,选择合适的自动化测试工具至关重要。例如,在移动端iOS平台上的逻辑自动化测试实践中提到,通过腾讯TMQ进行iOS端的自动化测试能够有效提升效率[^1]。 #### 用户交互流程模拟 在设计商城项目的自动化测试方案时,应站在最终用户的视角来考虑整个购物流程。这包括但不限于商品浏览、加入购物车、结算支付等功能模块。每个功能模块都可以被拆分为多个独立的小型测试用例来进行验证。例如: - 商品详情页加载速度及显示准确性; - 加入购物车按钮响应情况及其后的库存更新机制; - 支付网关接口调用的成功率以及异常处理能力等。 这些具体的业务场景不仅限于界面上的操作,还涉及到后台服务之间的通信协议和数据库状态变更等方面的内容[^2]。 #### 关键路径优先级划分 并非所有的操作都需要完全依赖UI级别的自动化脚本来完成。对于那些不直接影响用户体验但又十分重要的环节(比如订单创建过程中的某些参数校验),可以直接利用API请求的方式来简化测试步骤并提高执行效率。这样既能保证核心交易链路的安全稳定运行,又能减少不必要的资源消耗。 ```python import requests def create_order(api_url, payload): response = requests.post(url=api_url, json=payload) if response.status_code == 200: return True else: raise Exception(f"Failed to create order with status code {response.status_code}") ``` 此代码片段展示了如何通过POST方法向指定URL发送JSON格式的数据体以创建新订单实例,并根据返回的状态码判断是否成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值