微信小程序项目实例,minium框架自动化测试实战(全网最详细)

前言

平常我们使用自动化主要是针对 App 端和 Web 端,另外还有两种场景比较少用但是也很重要,分别是:浏览器、微信小程序。

随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序、微信公众号等。小程序项目页面越来越多,业务逻辑也越来越复杂,全手工测试已无法满足快速增长的业务需求。

一、Minium详情

Minium是微信研发团队专门为小程序的UI自动化提供的一个测试框架,框架的一些接口继承自unittest, 可以使用unittest中的各种断言函数,语言是基于python的,框架里的minium.MiniTest类已经封装好了小程序的启动、调用配置文件、执行测试用等方法。

其特点:

支持一套脚本,iOS & Android & 模拟器,三端运行
提供丰富的页面跳转方式,看不到也能去得到
可以获取和设置小程序页面数据,让测试不止点点点
可以直接触发小程序元素绑定事件
支持往 AppSerive 注入代码片段
可以调用部分 wx 对象上的接口

二、环境搭建

主要是三大件:

Python 3.8及以上
微信开发者工具
微信版本 >= 7.0.7

三、准备操作

1、启动

minium.MiniTest类里边已经封装好了小程序的启动、调用配置、执行测试计划、关闭等一系列的方法,所以在编写测试用例脚本的时候,定义的类在继承了minium.MiniTest类之后,可以直接开始写测试用例,不用关注怎么启动。

2、配置

minium框架里面默认配置的项目路径以及CLI工具路径都为None,所以会加载默认配置。

如果我们的项目路径以及CLI工具路径不是用的默认路径,执行会报错找不到路径,所以我们需要在项目路径下新建一个config.json文件,将里面的project_path改为你的小程序项目路径,dev_tool_path改为你的CLI工具路径

3、命令行运行

minitest -c config.json -m tests.igtest - g
-c 指定配置文件
-m 指定要执行的用例文件名(注意不需要写.py)
-g 生成测试报告

4、元素定位

(1)单选择器定位:一般可以使用.class或者#id去定位到元素

(2)多选择器定位:如果元素class有重名,id也有相同的,可以使用.class+#id去定位

(3)组合定位:如果有多个元素的class相同,id又是变化的,可以使用page.get_element(‘.main-menu-txt’, inner_text=’租赁合同’, text_contains=‘租赁合同’),或者使用page.get_elements(‘.main-menu-txt’)

5、断言

常用的断言主要有三种:
(1)assertEqual(first, second, msg) first == second时,断言成功,用例结果符合预期 first != second时,断言失败,抛出错误信息及msg.

(2)assertTrue(expr, msg) expr为True,断言成功,用例结果符合预期 expr为False,断言失败,抛出错误信息及msg

(3)assertTexts(texts, selector, msg) texts中每个元素的值都包含在selector选择器对应的元素文本集合中,则断言成功,否则,断言失败,抛出错误信息及msg

四、用例设计模式

对testcase采用分层和数据与脚本解耦的管理模式

1、PO模式

PO模式,即page object mode,页面对象模式,通过对界面元素和功能模块的封装减少冗余代码,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。

2、层级关系

第一层:基础层BasePage,作用:封装一些minium的原生方法,如元素定位、框架跳转等

第二层:PO层,页面对象层,如元素定位、获得元素对象、页面操作

第三层:测试用例层,主要负责业务逻辑和数据驱动

三层之间的关系:PO层继承基础层的类,测试用例层调用PO层

五、真机自动化测试

小程序自动化除了可以控制开发者工具中的小程序模拟器,也支持通过远程调试控制真机,以达到在真机上进行自动化测试的目的。

1、运行环境

确保目标机器上的基础库版本在2.7.3以上

2、使用方法

1.通过SDK启动
可以在测试脚本开头使用 miniProgram.remote 接口启动工具的真机调试功能,调用成功后脚本会在控制台打印二维码。使用目标机器扫码成功连接后,脚本会继续在真机上执行下去。

2.手工启动
如果工具是打开常驻并且使用 automator.connect 接口进行连接,那么可以先手工启用工具的真机调试功能后再运行测试脚本,这样就可以将在真机上测试小程序了。

六、云测服务

小程序云测服务简介
MiniTest 微信小程序云测是一套由微信测试团队自主研发,联合 WeTest 云真机能力,共同推出的小程序自动化测试服务。

服务基于云真机,支持开发者简单快捷地实现小程序真机自动化测试和性能分析等能力。 服务平台特色功能如下:

丰富的自动化测试能力
全面的性能分析能力
支持持续集成,打通业务 Devops 流程
支持第三方服务商
免费使用,提供每周免费使用额度,能满足绝大多数项目自动化测试需求

七、自动化测试对比

1.接入智能化 Monkey 测试、录制回放、自定义测试(minium)
能力对比:

测试能力突出优势注意事项适用场景
智能化 Monkey接入即用,智能化点击,也可通过简单配置页面参数提高覆盖率不支持输入,上传图片等复杂操作;无法校验页面逻辑快速冒烟测试
录制回放零代码生成用例脚本;快速生成用例,效率高用例调整不如自定义测试灵活较简单的用例,自动化回归测试
自定义测试完全定制测试场景;灵活度高,能力全面;支持数据驱动测试(DDT)需要编写 Python 脚本,有一定的学习成本较复杂的用例和场景

2.全面的性能分析
小程序的性能测试主要分为启动时性能测试和运行时性能测试
启动性能专项分析

小程序启动是小程序用户体验中极为重要的一环,启动耗时过长会影响用户体验、造成用户流失。 云测服务支持小程序启动性能专项测试,无需额外配置接入即用,通过多次测试用户首次访问(需下载代码包)以及用户非首次访问(已下载代码包)两种情况,分析小程序在各个阶段的启动耗时情况,发现启动性能瓶颈。

运行时性能专项分析
常规性能数据:在云测服务跑查任意测试时,会自动获取跑查过程中的常规性能数据,如启动时间、CPU、内存等,并且云测服务会将性能测试结果和现网的平均性能数据进行对比,方便开发者掌握小程序的性能情况。

支持持续集成
支持多个小程序版本:开发中版本、体验版本、线上版本
支持HTTPS接口提测
任务结束提醒
云测服务支持用户配置邮箱及手机号信息,测试任务结束会通知到用户,用户可以利用https轮询任务结果,根据任务结果定制业务逻辑,如错误告警等。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest ui自动化测试实战主要包括安装并配置环境、练习pytest基本使用、练习selenium基本使用以及使用pytest和selenium实现UI自动化测试四个部分。在练习pytest基本使用中,我们可以通过编写简单的用例格式来实现对测试目的和要求的覆盖。而在练习selenium基本使用中,我们可以使用脚本语言来模拟用户行为操作,接近真实用户场景,实现对web页面的自动化测试。通过这些实践,我们可以了解基于pytest和selenium的UI自动化测试的基本思路,并熟悉这两种测试工具的基本操作。此外,pytest还是一个非常成熟的Python测试框架,它具有简单的用例编写格式和丰富的插件,如pytest-html和pytest-rerunfailures等,可以生成漂亮的测试报告并实现失败用例的重复执行。通过实战,我们可以基本掌握pytest的使用方法。另外,还可以基于pytest实现测试用例收集方案、自定义参数化方案、页面元素定位数据存储方案、测试用例数据存储和维护方案等,以避免重复设计和维护复杂的问题。此外,还可以修改定制并汉化html测试报告,使其更加简洁、美观、易读。同时,还可以封装集成selenium、appiumminium和WinAppDriver等工具,以更好地支持不同平台和应用的自动化测试。总之,通过pytest ui自动化测试实战,我们可以全面了解和掌握UI自动化测试的基本原理和实践技巧。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [软件测试案例|使用 pytest+selenium 进行UI自动化测试](https://blog.csdn.net/qq_41640218/article/details/124031645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于pytest设计自动化测试框架实战](https://blog.csdn.net/hotswwkyo/article/details/103211805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值