找回密码
 立即注册

小程序UI自动化测试选型Minium框架

匿名  发表于 2022-2-24 18:53:52 阅读模式 打印 上一主题 下一主题
一、布景:

对于web or APP UI自动化测试,由于已经成长了多年,是以相关的材料都比力齐全且有用。而小法式UI自动化网上相关的材料比力少,而且有些材料也是过期大概毛病的。博主比来也有小法式UI自动化的需要,是以自己逐一理论了以下的各个框架,只要自己尝试以后才能找到最合适本身系统现真相况的框架,希望对你有帮助。
二、UI自动化测试选型之路:

1. Appium

WebDriver的W3C协议与UiAutomator的连系,在App自动化范畴职位明显,对于APP原生页面做自动化测试真的是很好使。所以第一反应也是尝试Appium能否可行,但第一步就吃了闭门羹。微信小法式是基于腾讯自研X5内核的webview,Appium没法间接定位这类页面的元素:


小法式UI自动化测试选型Minium框架-1.jpg

继续尝试网上提到的别的一种定位元素的方式:用chrome inspector识别:
Chrome阅读器中输入:chrome://inspect/#devices


小法式UI自动化测试选型Minium框架-2.jpg

点击具体的页面,简直可以定位到元素:


小法式UI自动化测试选型Minium框架-3.jpg

但尝试后也欠好用,首要有以下的坑:

  • 需要翻开微信上小法式的调试功用,在私信聊天页,输入http://debugx5.qq.com,点击后跳转到x5调试页面,点击信息,然后勾选【翻开TBS内核Inspector调试功用】;
  • 第一次利用chrome inspector页面空缺加载不出来内容,这是由于Google的inspect工具需要拜候到墙外的网站,所以需要有FQ工具大概VPN方式,对不会FQ的同学来说不友爱;
  • 微信在新版本中对小法式调试进口加上了限制:在微信主窗口下来翻开小法式,在chrome中经过inspect工具是检测不到小法式对应的url进口的;处理计划是在微信->发现->搜一搜搜索小法式,才可发现在inspect工具中可以将对应url;
  • appium-desktop安装以后里面自带的chromedriver不是2.26的,需要手动去官网下载对应版本的chromedriver:http://chromedriver.storage.googleapis.com/index.html, 将其放到appium的chromedriver对应目录中;
  • 每停止一次页面跳转时, 小法式会连结多个页面, 只要现在的页面是visible的。但法式会默许设备在上一个页面上, 一切需要代码切换页面, 才能做后续操纵
#一个小法式有多个窗口, 切换到真正展现内容的窗口
handles = driver.window_handles
for handle in handles:
    driver.switch_to.window(handle)
    if driver.page_source.find("main.html:VISIBLE") != -1:
        break

  • 页面弹窗chrome inspector识别不到,没法定位弹窗页面元素停止操纵;
  • 分歧的手机,装备本身的android system webview版本和微信里的webview版本纷歧致,也需要处置;
基于以上的缘由,该计划可用但欠好用,终极放弃,尝试寻觅此外处理计划。
2. FAutoTest

这个框架最初定位是专业办事于微信 H5/小法式的UI自动化测试,但最初一次更新提交是2019年9月,而上一次提交是2018年12月,今朝已经放弃不再保护更新了。加上实现自己也是要经过chrome inspector识别元素,是以放弃。
3. AirTest

支持图像识别定位操纵的框架,经过图片对照来识别完成操纵,可以很是快速的完成自动化测试剧本的编写,简单高效,进修本钱低,编写剧本效力高。


小法式UI自动化测试选型Minium框架-4.jpg

优点这么明显,自然弱点也是明显的:非论是在AirTest自带IDE里面利用,还是连系Python框架利用,在剧本里保护一大堆图片,始终都很难熬,欠好保护。


小法式UI自动化测试选型Minium框架-5.jpg

此外,分歧真机装备之间分辨率纷歧致,图片识别就存在了兼容性题目,一样一套剧本A手机上能运转,B手机上能够就识别失利了,甚至同一套剧本在同一台装备上频频运转屡次,也会存在偶然图片识别失利的情况发生。
虽然官方也明白给出了一些增强剧本兼容性的手段,但始终没法100%处理该题目,不能100%处理,那剧本自己就存在了不稳定性,这是硬伤。也尝试过能否可以用PC上的手机模拟器来只管躲避分辨率的题目,但惋惜的是很多小法式今朝在模拟器上还不能很好的运转,且PC电脑显现器的分辨率分歧,对图片识别也有影响。
是以假如这一套自动化剧本只是你一小我利用,装备是牢固的,一小我测一个系统,比起剧本兼容性和稳定性,你更在意的高效快速利用自动化帮助考证,AirTest会是一个不错的挑选。反之,则不太合适,是以终极也是临时放弃了该计划。
4. Miniprogram-automator

微信小法式官方自己出的自动化测试框架:https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/quick-start.html 。
经过miniprogram-automator SDK编写剧本在开辟者工具或真机中完成各类操纵实现自动化测试。需要安装Node.js, 连系前真个测试框架Jest,完成自动化测试剧本的开辟。
由于可以间接经过操纵小法式开辟者工具来履行操纵,只要一台电脑便可以完成全部自动化测试,无需外接手机装备。元素定位也可通太小法式开辟者工具中间接copy selector,很是方便。
是以全部形式和APP原生页面/web页面的UI自动化测试类似,一套剧本可多处运转,稳定性也有保障。


小法式UI自动化测试选型Minium框架-6.jpg

小法式UI自动化测试选型Minium框架-7.jpg

小法式UI自动化测试选型Minium框架-8.jpg

由于该框架是基于前真个语法来编写测试剧本,尝试进修利用该框架编写剧本后,在编写的进程中也表暴露了题目:一方面大部分测试同学都缺少前端代码开辟经历,是以一边进修一边开辟剧本,编写剧本的效力大幅度下降,普适性很低。
另一方面临前端框架的不熟悉,也致使测试框架的优化,如数据驱动、代码分层也变得辣手。小我感受该框架更合适前端研发自测利用,会加倍的事半功倍。是以继续尝试此外框架。
5. Minium

由于前面利用miniprogram-automator在前端编程方面碰鼻,是以想找一个类似的框架,要可以利用小法式开辟者工具来定位元素和运转剧本,而且假如能用测试职员熟悉的Python来编写就完善了。因而就发现了Minium:https://git.weixin.qq.com/minitest/minium-doc
minium 是为小法式专门开辟的自动化框架, 供给了 Python 和 JavaScript 版本。下载并安装好minium-doc以后,参看手册即可快速上手:


小法式UI自动化测试选型Minium框架-9.jpg

minium供给一个基于unittest封装好的测试框架,测试基类Minitest会按照测试设置停止测试,minitest向上继续了unittest.TestCase,并做了以下修改:

  • 加载读取测试设置config.json
  • 在合适的机会初始化minium.Minium、minium.App和minium.Native
  • 按照设置翻开IDE,拉起小法式项目和或自动翻开真机调试
  • 阻挡assert挪用,记录检验成果,由于继续了unittest.TestCase, 是以各类assert校验利用很方便。
  • 记录运转时数据和截图,用于测试报告天生
    利用MiniTest可以大大下降小法式测试本钱。

小法式UI自动化测试选型Minium框架-10.jpg

base/:页面公共方式
pages/:页面临象模子
outputs/:测试报告
testcase/:测试剧本
config.json:设置文件,测试用例的运转依靠于该设置文件


小法式UI自动化测试选型Minium框架-11.jpg

suite.json:批量运转用例设置文件


小法式UI自动化测试选型Minium框架-12.jpg

run.py: 单个调式剧本或批量履行剧本


小法式UI自动化测试选型Minium框架-13.jpg

测试报告输出款式:


小法式UI自动化测试选型Minium框架-14.jpg

由于Minium是小法式今朝官方保护的自动化测试框架,其支持一套剧本,iOS & Android & 小法式开辟者工具模拟器,三端运转,而且供给了Python版本,对测试同学很是友爱,是以终极选定了该框架作为小法式UI自动化测试的利用框架。
===================================================================
以上就是本篇文章的全数内容,希望对你有帮助!
微信关注法式员杨叔的微信公众号,免费获得更多全栈测试干货内容材料:
回复

使用道具

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐

神回复

站长姓名:王殿武 杭州共生网络科技 创始人 云裂变新零售系统 创始人 飞商人脉对接平台 创始人 同城交友聚会平台 创始人 生活经验分享社区 创始人 合作微信:15924191378(注明来意)