新手区 [minium] 小程序自动化测试,踩坑记录帖

柒意 · 2020年09月25日 · 最后由 柒意 回复于 2020年12月02日 · 74 次阅读

说说问题

新入职的一家公司,公司技术栈都是 js 系的,然后分的任务是做小程序 ui 自动化测试,其实是想用 python 的 minium 库的(微信官方开源),文档地址,我将文档部署到了自己的服务器(http://49.232.203.244:3000/#/minium/Python/readmeminiprogram-automator),但是遇到个坑被拦在了最开始,所以还是考虑用(https://developers.weixin.qq.com/miniprogram/dev/devtools/auto/),但是现在没有 具体的思路就目前来说应该能实现一些线性脚本的测试用例,不知道各位有什么好的解决方案,
放两张报告图吧:miniprogram-automator ,用jest-html-report集成的报告
minium 测试报告

minium 跟着官方实例遇到了

最后

刚领导来问我决定用哪个工具了吗,其实我想如果上面问题解决了还是用 minium 合适,毕竟报告漂亮点

共收到 22 条回复 时间 点赞

现在可以了 之前应该是版本库没选择对,必须要有这个

说说遇到的新问题:根据文档中配置了config.json配置文件后无法直接唤起微信开发者工具,导致出现了超时的错误

{
    "debug_mode": "debug",
    "enable_app_log": true,
    "project_path": "C:\\Users\\zy7y\\Desktop\\miniprogram-demo",
    "dev_tool_path": "C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli",
    "platform": "ide",
    "app": "wx",
    "close_ide": false,
    "full_reset": false,
    "test_port": 9420,
    "assert_capture": true,
    "use_push": true,
    "auto_relaunch": true,
    "remote_connect_timeout": 10,
    "request_time": 30
}

测试代码及错误截图如下:

请各位如果遇到过能帮下忙

上面问题 是因为用了 miniTest 通过命令行来启动所以不行~~,可实际这是官方示例提供的方式之一,同情况下使用 pycharm 下 unittest 方式运行 是无问题的,本来是想 通过 miniTest -s suite.json -g 直接运行并生成测试报告,由于这个问题暂时解决不了,然后就找了段 unittest 的代码来实现 多个文件运行 (非异步哈:miniTest 基于 UnitTest 开发的),

import os
import time
import unittest

if __name__ == '__main__':
    # 测试用例目录
    test_dir = r"C:\Users\zy7y\Desktop\miniprogram-demo-test"
    # 加载测试用例
    discover = unittest.defaultTestLoader.discover(test_dir, '*test.py')  # 返回值是一个测试套件
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(discover)
    time.sleep(3)
    # 输出测试报告
    os.system('minireport outputs report')
    time.sleep(2)
    # 启动本地服务,并映射报告文件
    os.system('python -m http.server 8080 -d report')

个人不是很熟悉这些用法,这段代码原文出处来自(自己加了生成报告并映射服务):http://www.mamicode.com/info-detail-2923324.html


当然这些都是跑得 实例代码,然后报的错误也不是很懂,路还很长~~

现在在哪里工作呢

潘大帅 回复

大学城这边

柒意 回复

哦哦,以为你去外地了

潘大帅 回复

因为分享面试题,被取消录用了,不然真就去外地了,尴尬

柒意 回复

这都能被发现么。。。那是真尴尬

柒意 回复

这肯定有其他原因,现在这些公司

柒意 #11 · 2020年09月27日 Author


我之前用过这个工具,但是小程序内部的控件定位不到

柒意 #13 · 2020年09月28日 Author
乍暖还寒 回复

柒意 #14 · 2020年09月29日 Author

现在的问题:1.原生控件无法操作,2.自动化时候在一个页面列表数据不知道是否可选(有的数据有状态了 就不能操作,没有就操作他),3.上传文件

柒意 #15 · 2020年09月30日 Author

今天找了篇帖子,也是按照上面的方法成功的使用了 minium 的一个 mock 方法绕过 微信原生 modal 无法操作的问题:https://developers.weixin.qq.com/community/develop/doc/000e86d66e853009b729a312f51c00?highLine=minium

柒意 #16 · 2020年10月10日 Author

目前完成了 一个业务角色的某条流程线自动化脚本,因为能力不够 很乱,然后 300 行代码都在一个文件里,领导希望先把这个业务角色的自动化脚本用起来,正在慢慢试错,用命令行启动步骤:
# 1. D:\tools\微信 web 开发者工具\cli.bat auto --project D:\work\xcx\dist --auto-port 9420
需要先启动了微信开发者工具

然后执行下面命令 first_test 是文件名称 -g 代表生成测试报告
# 2. miniruntest -m first_test -g # 有个弊端,需要保证微信开发者工具已启动
后续优化。代码数据分离,优化断言处,元素分离。。。,多数据处理

柒意 #17 · 2020年10月11日 Author

目前在尝试实现 po 模式,其中将 case 分到了 testcase 目录下,遇到个坑的点,minium 默认加载的配置文件是必须要和执行的 case 在同一个目录,解决方法:修改 minium 下 - 源码文件assertbase.py如下

柒意 #18 · 2020年10月19日 Author

更推荐这种方法,直接命令运行测试 指定 config.json 文件路径

老哥,最近也在研究这个框架,想做小程序自动化,有什么心得或传授一下

appium 可行么?只要能定位到元素就能驱动,我上次试过 android 小程序能定位到元素,不过没时间去搞了😅

柒意 #21 · 2020年12月02日 Author
小星星 回复

需要有小程序的开发者权限,然后拿到源代码,我使用的是微信 web 开发者工具,没有上真机,整体使用参考 webUI/appUI 自动化,但是官方目前没有提供上传文件的方法,而且操作微信 mobal 弹窗这些只能用 mock 来实现,https://developers.weixin.qq.com/community/develop/doc/000e86d66e853009b729a312f51c00?highLine=minium, 使用过程中多去这个地址找答案吧

柒意 #22 · 2020年12月02日 Author
小酷 回复

个人没使用过 appium,不过应该是可行的,appium 就不需要小程序的源码了,方法也更多,不过之前查了一手好像需要用什么工具来查看定位元素,貌似还不是那么容易用起来,有小程序源码就可以用微信开发者工具,上面直接就定位了,操作起来和 web 没什么区别

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册