其他测试框架 minium 弹框处理求助

lj · 2022年02月10日 · 最后由 lj 回复于 2022年02月12日 · 1432 次阅读


求问各位大神,如何用 ide 处理类似的弹框啊
微信开放社区里面有解决方案,但是小白刚学,看的云里雾里的,尝试了很久也没成功

最佳回复
def mock_modal(self, status: bool = True):
    """
    mock 实现微信原生弹框modal组件:需在弹框出来之前使用,使用之后需要调用self.app.restore_wx_method() 去掉mock
    :param status: 默认True,点击modal弹框确定按钮, 传入False 实现点击取消按钮
    """
    if status:
        self.app.mock_wx_method(
            'showModal',
            result={
                "errMsg": "showModal:ok",
                "cancel": False,
                "confirm": True})
    # 这个result 具体根据小程序代码中的内容修改,没记错是这样的
    else:
        self.app.mock_wx_method(
            'showModal',
            result={
                "errMsg": "showModal:ok",
                "cancel": True,
                "confirm": False})

def rest_modal(self):
    """去掉mock showModal弹窗的效果"""
    self.app.restore_wx_method('showModal')

如果还没记错的话,可以去 debug 小程序代码点击确定的时候 modal result 是什么内容

共收到 8 条回复 时间 点赞

信息太少啦。。。提问请不要一图流。。。请像报 bug 一样提供足够的上下文信息方便阅读,我们不是你同事,压根不知道你在研究啥。比如你这个到底是个啥应用,我如果不百度 minium 发现是个微信小程序自动化框架,都没法看出这是个小程序。。。

微信开放社区里面有解决方案 ,你把相关文章地址也搬过来吧,这个文章至少能说明更多问题细节。同时也说下对哪些部分(术语?名词?)看不懂,方便了解的同学针对性进行解释?

另外,也把你做过什么尝试也发一下,越详细越好,把代码、日志都附上来。尽量把你做过的尝试说明清楚便于有经验的同学快速看出哪里有问题,直接回复存在的问题和解决思路,这样降低回答者成本,也便于你收到更多有效的答复。

PS:我看官网的示例用例里面,就有操作弹窗(小程序里貌似称为 modal ,属于原生控件)的用例片段:

https://minitest.weixin.qq.com/#/minium/Python/introduction/sample?id=%e5%8e%9f%e7%94%9f%e7%bb%84%e4%bb%b6%e7%a4%ba%e4%be%8b

也有完整可直接执行的用例:
https://git.weixin.qq.com/minitest/miniprogram-demo-test/blob/master/nativetest.py

你有尝试过吗?

3楼 已删除
lj #4 · 2022年02月11日 Author
陈恒捷 回复

第一次求助,格式确实不太规范
minitum 是微信小程序的自动化框架,最近测试小程序,想着是不是可以用来做自动化回归
回归的场景中会遇到需要处理原生弹框(即 modal)的情况,官方的文档里面有一个 handle_modal 的方法(官网的示例就是用的这个方法)
https://minitest.weixin.qq.com/#/minium/Python/api/Native?id=handle_modal

但是用微信开发者工具运行自动化的话直接调用不生效,需要 mock_native_modal 配置项,然后看了一下相关示例,没咋看懂是怎么个 mock 法
https://minitest.weixin.qq.com/#/minium/Python/framework/config?id=ide%e7%9a%84mock_native_modal%e9%85%8d%e7%bd%ae%e9%a1%b9

def mock_modal(self, status: bool = True):
    """
    mock 实现微信原生弹框modal组件:需在弹框出来之前使用,使用之后需要调用self.app.restore_wx_method() 去掉mock
    :param status: 默认True,点击modal弹框确定按钮, 传入False 实现点击取消按钮
    """
    if status:
        self.app.mock_wx_method(
            'showModal',
            result={
                "errMsg": "showModal:ok",
                "cancel": False,
                "confirm": True})
    # 这个result 具体根据小程序代码中的内容修改,没记错是这样的
    else:
        self.app.mock_wx_method(
            'showModal',
            result={
                "errMsg": "showModal:ok",
                "cancel": True,
                "confirm": False})

def rest_modal(self):
    """去掉mock showModal弹窗的效果"""
    self.app.restore_wx_method('showModal')

如果还没记错的话,可以去 debug 小程序代码点击确定的时候 modal result 是什么内容

回复

我是用的 微信开发者工具:minium 1.1.1

lj 回复

我理解这段文字意思是 modal 的 mock 你啥都不用写,默认就会 mock 掉了。你在 minium 里面通过 handle_modal 就可以处理。

你要不直接执行官方的小程序 + 自动化用例 demo 试试?里面也有 modal 处理的示例。
https://git.weixin.qq.com/minitest/minitest-demo

modal 处理的函数在这里:https://git.weixin.qq.com/minitest/minitest-demo/blob/master/testcase/cases/test_native.py#L238

9楼 已删除
回复内容未通过审核,暂不显示
lj 关闭了讨论 02月16日 17:03
lj 重新开启了讨论 02月16日 17:05
lj 关闭了讨论 02月16日 17:08
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册