Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >App自动化测试中,如何更好地处理弹窗?

App自动化测试中,如何更好地处理弹窗?

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2024-04-17 07:12:26
发布于 2024-04-17 07:12:26
21600
代码可运行
举报
运行总次数:0
代码可运行

简介

在 app 自动化测试中,弹窗异常处理是指处理应用程序中可能出现的各种弹窗、对话框或提示框等用户界面元素的情况。这些弹窗可能包括警告、确认、输入框等,它们可能是应用程序的正常行为,也可能是错误或异常的指示。有效的弹窗异常处理是自动化测试稳定性和可靠性的关键组成部分。

使用场景

  • 运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等)
  • 弹框不是 BUG(UI 界面提示,警告的作用)

操作步骤

黑名单处理
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def find(self, by, locator):
    try:
        return self.driver.find_element(by, locator)
    except Exception as e:
        for black in black_list:
            eles = self.driver.find_elements(*black)
            if len(eles) > 0:
                eles[0].click()
                return find(by, locator)
        raise e
异常处理 - 装饰器
装饰器优势
  • 对原有函数的功能增强
  • 不改变原有函数的逻辑
  • 使代码更简洁、易维护
代码实现
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 声明一个黑名单
def black_wrapper(fun):
    def run(*args, **kwargs):
        self = args[0]
        try:
            return func(*args, **kwargs)
        except Exception as e:
            # 这里添加所有的异常情况处理
            # 日志
            logger.warning("执行过程中发生异常")
            # 截图
            timestamp = int(time.time())
            image_path = f"./images/image_{timestamp}.PNG"
            page_source_path = \
                    f"./page_source/{timestamp}_page_source.html"
            # page_source
            with open(f"./page_source/{timestamp}_page_source.html",\
                     "w", encoding="u8") as f:
                f.write(self.driver.page_source)
            self.driver.save_screenshot(image_path)
            allure.attach.file(image_path, name="image",\
                     attachment_type=allure.attachment_type.PNG)
            allure.attach.file(page_source_path, \
                    name="page_source", \
                    attachment_type=allure.attachment_type.TEXT)
            raise e
    return run
装饰元素查找方法
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
@black_wrapper
def find(self, by, locator)
    return self.driver.find_element(by, locator)

总结

  • 黑名单处理
  • 异常处理装饰器

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
自动化中的失败截图和存log
如果我们在执行自动化测试的时候,希望能在失败的时候保存现场,方便事后分析。 对于UI自动化,我们希望截图在测试报告中。 对于api自动化,我们希望截取出错的log在测试报告中。 我开始自己蛮干,写了两个出错截图的方法。
赵云龙龙
2021/04/23
1.1K0
自动化中的失败截图和存log
接口自动化测试之pytest用例管理框架3
@allure.attach显示许多不同类型的提供的附件,可以补充测试,步骤或测试结果。
用户6367961
2022/11/21
6510
接口自动化测试之pytest用例管理框架3
Pytest自动化测试 - allure报告进阶
如果你想对测试用例进行严重等级划分,可以使用 @allure.severity 装饰器,它可以应用于函数,方法或整个类。
huofo
2022/03/18
3400
Pytest自动化测试 - allure报告进阶
简单一行代码截图记录每次页面错误
在进行Web UI的自动化测试的时候,有些错误无法简单的通过文字描述清楚,还是需要进行页面截图。但为了让该优化不需要投入过多的时间,采用装饰器进行装饰。
zx钟
2019/10/09
1K0
简单一行代码截图记录每次页面错误
自动化测试的一些技巧
嗯,似乎好久没上来写文章了。接近两个月没怎么动笔了,惭愧惭愧! 想想这两个月也没干什么,主要是为了生计。一个公司好不好,最主要是要能生存,有现金流。最近自己最大的体会,就是内卷太厉害,各行各业,各种卷。 OK,废话少说。今天来聊一聊如何搭建一个自动化框架。 老生常谈的话题。 我们写代码的时候,为了方便维护,管理以及扩展啥的,需要搭建一个框架。 那么这个框架该如何搭建呢? 以mobile UI为例,看看需要搭建到什么程度。 首先需要支持不同的平台。Android,IOS都能支持。最好是一套代码共用。 然后模拟器,真机也能够支持。 还能够支持多机同步,异步的跑case. 同步跑可以测兼容性,异步跑可以节省运行的时间。 支持数据驱动; 支持CICD. 看起来似乎复杂,其实也不难。
赵云龙龙
2021/07/15
5960
3.UI自动化测试框架搭建-封装元素操作基类
https://github.com/zx490336534/selenium-po/blob/master/selenium_po/elementoperator.py
zx钟
2022/03/29
7100
3.UI自动化测试框架搭建-封装元素操作基类
快速上手App自动化测试利器,Toast原理解析及操作实例
Toast 是一种轻量级的消息提示,常常以小弹框的形式出现,一般出现 1 到 2 秒会自动消失,可以出现在屏幕上中下任意位置。
霍格沃兹测试开发Muller老师
2024/03/20
2200
Python 自动化测试(五): Pytest 结合 Allure 生成测试报告
所以打造一个美观、一目了然的测试报告,清晰的反应质量问题,并提供给相关人员了解项目的整体状态,是非常必要的。
霍格沃兹测试开发
2020/10/28
1.8K0
Python 自动化测试(五): Pytest 结合 Allure 生成测试报告
史上最全 Appium 自动化测试从入门到框架实战精华学习笔记(三)
本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。
霍格沃兹测试开发
2022/05/30
1.3K0
软件测试开发实战 | 记录写装饰器时踩的几个坑
装饰器是python里面一个很有用的语法糖( Syntactic Sugar),可以减少大量重复代码的编写。
霍格沃兹测试开发
2020/12/09
6290
Pytest实战Web测试框架
用例之间不应相互依赖,如果部分用例拥有相同的业务流程,如都需要,打开登录页->登录->点击添加商品菜单->进入添加商品页面 不建议使用以下方式,并使其按顺序执行。
赵云龙龙
2020/02/13
2K0
Pytest实战Web测试框架
技术分享 | app自动化测试(Android)--App 控件交互
通常获取到元素之后,可以调用 click() 方法来实现对这个元素的点击操作。示例代码如下:
Hogwarts_测试
2022/06/14
5340
技术分享 | app自动化测试(Android)–App 控件交互
通常获取到元素之后,可以调用 click() 方法来实现对这个元素的点击操作。示例代码如下:
霍格沃兹测试开发
2022/06/14
8370
6.UI自动化测试框架搭建-常用操作封装(二)
Allure头部装饰器组合 根据【装饰器叠加】里面的操作 增加allureoperator.py函数编写一个组合装饰器compose将 @allure.feature('大模块') @allure.story('子模块') @allure.title('这个test_b') @allure.issue('url', '问题单:xxx') def test_b(): print('ok') 变成 @compose(feature='大模块', story='子模块',
zx钟
2022/03/29
4350
web自动化测试进阶篇05 ——— 界面交互场景测试
  界面交互作为黑盒测试内容中重要的一环,在广大的测试人员群体中几乎成了入行的第一个接触内容,执行测试任务时站在客户角的度出发是每个测试人员都必须做到的基本条件,而模拟客户的日常业务操作,界面交互操作就成为了重中之重。同样的在自动化测试中,我们该如何更好的将界面交互操作融入到实际的自动化测试代码和框架中呢,今天博主就带着大家来看一看界面交互的一些进阶设计方法。
Austin_zhai
2023/10/18
5890
web自动化测试进阶篇05 ——— 界面交互场景测试
web自动化测试进阶篇05 ——— 界面交互场景测试
🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
Austin_zhai
2023/09/11
4040
web自动化测试进阶篇05 ——— 界面交互场景测试
干货|app自动化测试之Andriod WebView如何测试
哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢~(^▽^)PS:有问题可以联系我们哦~v ceshiren001
霍格沃兹测试开发Muller老师
2022/05/29
9920
Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
装饰器(Decorator)是 Python 非常实用的一个语法糖功能。装饰器本质是一种返回值也是函数的函数,可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下,实现额外的功能。
霍格沃兹测试开发
2020/09/02
2K0
Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
软件测试|解决 App 自动化测试的常见痛点
App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题:
霍格沃兹测试开发Muller老师
2023/01/09
5960
基于LangChain手工测试用例转App自动化测试生成工具
在传统编写 App 自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成 Web 或 App 自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于
霍格沃兹测试开发Muller老师
2024/09/19
2070
推荐阅读
相关推荐
自动化中的失败截图和存log
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验