一、写在前面

真的人这一散漫惯了,收心就很难了,上午把小程序开发环境启动后,在QQ游戏里,杀了三把象棋,5把2D桌球,一上午没了,还是没法心静下来去学点东西。

那就老样子,逼着自己开始,找到 “肌肉记忆” 自然也就可以静下心去思考问题了。

二、搞定配置项

1、配置文件部分

示例如下:

  1. {
  2. "project_path": "D:\\pyworkspace\\miniprogram-demo",
  3. "dev_tool_path": "E:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat",
  4. "debug_mode": "warn"
  5. }

这里很多参数没写,即走默认的配置项,关于详细的测试配置说明,请参看官方文档说明

2、命令行工具

测试用例既可以用unittest的方式执行,也可以用minitest来加载用例执行,相关的参数说明如下:

minitest 命令

  • -h, --help: 使用帮助。
  • -v, --version: 查看 minium 的版本。
  • -p PATH/--path PATH: 用例所在的文件夹,默认当前路径。
  • -m MODULE_PATH, --module MODULE_PATH: 用例的包名或者文件名
  • --case CASE_NAME: test_开头的用例名
  • -s SUITE, --suite SUITE:就是suite.json文件,文件的格式如下:
  1. {
  2. "pkg_list": [
  3. {
  4. "case_list": [
  5. "test_*"
  6. ],
  7. "pkg": "test_case.*_test"
  8. }
  9. ]
  10. }

说明:

  • pkg_list字段说明要执行用例的内容和顺序,是一个数组,每个数组元素是一个匹配规则,会根据pkg去匹配包名,找到测试类,然后
  • 根据case_list里面的规则去查找测试类的测试用例。可以根据需要编写匹配的粒度。注意匹配规则不是正则表达式,而是通配符。

三、入门栗子

1、目录结构

2、编写第一个case

  1. # -*- coding: utf-8 -*-
  2. """
  3. # @Time : 2023/01/25 12:49
  4. # @Author : longrong.lang
  5. # @FileName: sysinfo_test.py
  6. # @Software: PyCharm
  7. # @Blog :https://www.cnblogs.com/longronglang/
  8. # @Motto:ABC(Always Be Coding)
  9. """
  10. import minium
  11. class SysInfoTest(minium.MiniTest):
  12. def test_sysinfo(self):
  13. sys_info = self.mini.get_system_info()
  14. print(sys_info)
  15. self.assertIn("SDKVersion", sys_info)

3、运行单个case

执行如下命令:

  1. minitest -m test_case.sysinfo_test -c config.json -g

重点:

测试用例的命名,一定要casename_test,否则不好使,不信你可以写成test_casename,命令行执行体验报错的感觉!

运行结果如下:

4、批量执行测试

执行如下命令:

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

运行结果如下:

测试套件的意义在于可以批量执行用例,也是我们做自动化测试首选的方式。

部分参数说明:

  • -c CONFIG, --config CONFIG:配置文件名,配置项目参考配置文件
  • -g, --generate: 生成网页测试报告
  • --module_search_path [SYS_PATH_LIST [SYS_PATH_LIST ...]] : 添加 module 的搜索路径
  • -a, --accounts: 查看开发者工具当前登录的多账号, 需要通过 9420 端口,以自动化模式打开开发者工具
  • --mode RUN_MODE: 选择以parallel(并行, 每个账号从队列中取一个pkg运行, 完成后取下一个)或者fork(复刻, 每个帐号都跑全部的pkg)的方式运行用例
  • --task-limit-time: 任务超时时间,如果到期还没跑完测试,直接终止测试进程. 单位: s

更多命令行参数请参考命令行工具

5、生成测试报告

本地报告

执行如下命令:

python -m http.server 12345 -d outputs

打开浏览器,访问http://localhost:12345即可查看报告。

利用nginx的配置报告

  1. server {
  2. listen 80;
  3. server_name your.domain.com;
  4. location / {
  5. alias /path/to/dir/of/report;
  6. index index.html;
  7. }
  8. }

四、写在最后

可能有同学看到这会觉得,与上一篇文章好像一样,有那么一丢丢不一样,加入了实际案例及运行参数举例讲解,状态算是找回来了吧!

我是六哥,关于小程序自动化测试框架的学习,我会持续更新,感觉对您有帮助,请继续关注我,帮忙星标并转发即可!

腾讯出品小程序自动化测试框架【Minium】系列(二)项目配置及测试套件使用说明的更多相关文章

  1. 小程序第三方框架对比 ( wepy / mpvue / taro )(转)

    文章转自  https://www.cnblogs.com/Smiled/p/9806781.html 众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程 ...

  2. 小程序第三方框架对比 ( wepy / mpvue / taro )

      众所周知如今市面上端的形态多种多样,手机Web.ReactNative.微信小程序, 支付宝小程序, 快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端 ...

  3. 微信小程序自动化测试最佳实践(附 Python 源码)

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...

  4. minium-微信小程序自动化框架-python,官方文档

    minium文档 个人将其部署到了自己的服务器上,如有需要可以访问共同学习这个minium 用python来实现小程序自动化测试... 文档地址 http://49.232.203.244:3000/ ...

  5. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  6. 微信小程序自动化测试--接口测试

    偷得一篇文章: postman测试微信小程序接口---postman https://www.sunzhongwei.com/using-the-postman-test-wechat-mini-ap ...

  7. appium+java(五)微信小程序自动化测试实践

    前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...

  8. [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息

    因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...

  9. (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  10. 微信小程序 wafer2框架摘要

    微信小程序 wafer2框架摘要 帮助文档:https://github.com/tencentyun/wafer2-startup/wiki 使用了knex.js进行数据库交互,使用了koa.js进 ...

随机推荐

  1. IDEA& Android Studio 配置

    1.配置环境 首先要安装好JDK,但不需要单独下载SDK,只需在IDEA或AS的"设置->外观与行为->->系统设置->Android SDK"中下载相应版 ...

  2. 小米MIUI禁止系统更新

    删除downloaded_rom的文件夹,随便找一个文件(文件,不是文件夹),重名为downloaded_rom(是把一个文件重命名),这样系统后台偷偷下载时,就不知道该存放更新包的文件,就无法偷偷更 ...

  3. LVS综合实验

    LVS综合实验 1.环境准备 提前准备:Mysql8.0.30安装包.Mysql安装脚本.shopxo2.3.0安装包.DNS脚本 服务器 IP地址 作用 系统版本 Mysql-master 10.0 ...

  4. R数据分析:扫盲贴,什么是多重插补

    好多同学跑来问,用spss的时候使用多重插补的数据集,怎么选怎么用?是不是简单的选一个做分析?今天写写这个问题. 什么时候用多重插补 首先回顾下三种缺失机制或者叫缺失类型: 上面的内容之前写过,这儿就 ...

  5. Nginx 使用自签名证书实现 https 反代 Spring Boot 中碰到的页面跳转问题

    问题一:页面自动跳转到 80 端口 问题描述 最近在使用Nginx反代一个Spring Boot项目中碰到了一个问题,使用 Spring Boot 中的 redirect: 进行页面跳转的时候,通过 ...

  6. python(27)反射机制

    1. 什么是反射? 它的核心本质其实就是基于字符串的事件驱动,通过字符串的形式去操作对象的属性或者方法 2. 反射的优点 一个概念被提出来,就是要明白它的优点有哪些,这样我们才能知道为什么要使用反射. ...

  7. WinDBG详解进程初始化dll是如何加载的

    一:背景 1.讲故事 有朋友咨询个问题,他每次在调试 WinDbg 的时候,进程初始化断点之前都会有一些 dll 加载到进程中,比如下面这样: Microsoft (R) Windows Debugg ...

  8. 嵌入式-C语言基础:理解形参和实参的区别

    #include<stdio.h> //实参:函数原型中声明函数后面带的参数 int test(int x)//函数原型 { //函数体 printf("test里面的x地址=% ...

  9. API 如何选择 REST,GraphQL还是gRPC

    关于API的演进 CORBA RDA XML-RPC SOAP REST JSON-RPC ODATA GraphQL gRPC       gRPC是什么?

  10. .NET 7 的 AOT 到底能不能扛反编译?

    一:背景 1.讲故事 在B站,公众号上发了一篇 AOT 的文章后,没想到反响还是挺大的,都称赞这个东西能抗反编译,可以让破解难度极大提高,可能有很多朋友对逆向不了解,以为用 ILSpy,Reflect ...