美文网首页自动化
minium+python 进行小程序自动化

minium+python 进行小程序自动化

作者: 花开半夏fly | 来源:发表于2023-02-13 15:58 被阅读0次

一、minium框架的简介

minium 是为小程序专门开发的自动化框架,通过config 管理运行设备,通过suite方式管理用例

二、项目目录结构

项目目录结构.jpeg
  • case/base/:页面公共方法以及页面路径
  • case/locators: 页面节点
  • case/pages/: 页面对象模型
  • outputs/: 测试报告
  • test_my/:测试脚本
  • config.josn: 配置文件
  • sutie.json:管理测试用例文件

三、元素定位及页面操作

元素定位及页面操作.png
  • minium.Minium: Minium 负责初始化整个自动化框架,提供了Driver的启动接口,以及测试结束之后回收资源能力
  • minium.App: App提供小程序应用层面的各种操作,包括页面跳转,获取当前页面,页面栈等功能
  • minium.Page: Page提供了小程序页面内包括set data,获取控件,页面滚动等功能
  • minium.BaseElement: Element提供了页面元素空间进行操作,以及在控件内查找子控件的能力
  • minium.Native: 提供了针对小程序内涉及原生控件的操作封装

四、Page Object 模式

1、Page Object 采用分层封装的设计思想,不同层关心不同的问题。
2、页面对象层只关心元素定位问题,测试用例只关心测试的数据。
3、通过对界面元素和功能模块的封装减少冗余代码,在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,显著提高测试用例的可维护性。

五、断言

在测试用例中,执行完测试用例后,判断测试结果是PASS还是Fail


断言.png

六、运行测试用例

1、运行单个用例生成测试报告命令:test.first_test 为单个用例名称

minitest -m test.first_test -c config.json -g

2、测试计划 suite.json,通过suite可以跑多个测试用例,测试用例命名必须包含test
suite.json的pkg_list字段说明要执行用例的内容和顺序,pkg_list是一个数组,每个数组元素是一个匹配规则,会根据pkg去匹配包名,找到测试类,然后再根据case_list里面的规则去查找测试类的测试用例。可以根据需要编写匹配的粒度。注意匹配规则不是正则表达式,而是通配符

{
  "pkg_list": [
    {
      "case_list": [
        "test_*"
      ],
      "pkg": "*_test"
    }
  ]
}

执行命令

minitest -s suite.json -c config.json -g

七、测试报告:

测试结果存储在outputs下,运行命令python3 -m http.server 12345 -d outputs然后在浏览器上访问http://localhost:12345即可查看报告,如图:
或者直接通过命令minitest -s suite.json -c config.json -g也可以生产,通过右键-选择浏览器打开html报告

image.png
测试报告内容:
  • 测试用例运行时间、开始时间、结束时间、总耗时、单个用例耗时
  • 测试用例case数、通过、失败、case异常、通过率
  • 执行环境
  • 运行信息
  • 用例说明
  • 运行截图
  • 代码和堆栈
  • 运行日志
  • 小程序日志

八、定时跑自动化项目:

1、创建run.sh文件


run.sh.jpg

2、项目里面创建run.py文件,设定时间定时跑项目

import os
import datetime

class CheckService(object):
    def __init__(self):
        pass

    def timerFun(self, sched_Timer):
        flag = 0
        while True:
            now = datetime.datetime.now()
            if now == sched_Timer:
                os.system('/Users/macbookair/Desktop/p8care/run/run.sh')
                flag = 1
            else:
                if flag == 1:
                    # 把hours = 1,改成minutes = 1,就变成了每个小时定时任务,改成days = 1
                    # 就变成每天的定时任务
                    sched_Timer = sched_Timer + datetime.timedelta(days=1)
                    print('run the timer task at {0}'.format(sched_Timer))
                    flag = 0

if __name__ == "__main__":
    cs = CheckService()
    # 每天10点0分会执行任务
    sched_Timer = datetime.datetime(2022, 8, 2, 13, 45)
    print('run the timer task at {0}'.format(sched_Timer))
    cs.timerFun(sched_Timer)


九、参考文档:

1、minium文档:https://minitest.weixin.qq.com/#/minium/Python/readme
2、定时任务文档:
https://developer.aliyun.com/article/642819
https://www.cnblogs.com/royfans/p/7232881.html

相关文章

  • 小程序自动化+JEST框架测试学习总结及采坑

    小程序自动化介绍 小程序自动化 SDK 为开发者提供了一套通过外部脚本操控小程序的方案,从而实现小程序自动化测试的...

  • 百度/微信小程序自动化测试总结

    目 录: 1. 小程序自动化方案 目前小程序自动化主要有以下三种方案: Appium框架【官网】:http://a...

  • 使用AirtestProject+pytest做支付宝小程序UI

    因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的...

  • Docker与自动化测试及其测试实践

    Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编...

  • Docker与自动化测试及其测试实践

    Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造。自动化的成本在于自动化程序的编...

  • 微信小程序的自动化测试框架

    微信小程序的自动化测试框架 微信发布了小程序的自动化测试框架Minium,提供了多种运行验证方式,其特点: 支持一...

  • web自动化测试

    自动化测试:让程序代替人为去验证程序功能的过程 为什么要进行自动化测试?1. 解决-回归测试2. 解决-压力测试3...

  • web自动化测试Selenium

    1.什么是自动化测试 让程序代替认为去验证程序功能的过程 2.为什么要进行自动化测试 1.解决回归测试2.解决压力...

  • Instruments

    作用: 追查代码中难以重现的问题。2)对你的程序进行性能分析。3)自动化测试你的代码。4)对你程序进行压力测试5)...

  • 【UiPath Studio 中文文档】67 OCR 和图像自动

    由于在虚拟环境中很难实现自动化, OCR 和图像自动化通常是同时进行的。因此,我们创建了一个自动化程序,从扫描...

网友评论

    本文标题:minium+python 进行小程序自动化

    本文链接:https://www.haomeiwen.com/subject/cjtskdtx.html