软件测试/测试开发丨Selenium Web自动化多浏览器处理

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/27185

一、多浏览器测试介绍

1.1、多浏览器测试背景

  • 用户使用的浏览器(firefox,chrome,IE 等)
  • web 应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用

1.2、多浏览器测试概述

  • 是跨不同浏览器组合验证网站或 web 应用程序功能的过程
  • 是兼容性测试的一个分支,用于保持功能和质量的一致性
  • 适用于面向客户的网站和组织内部使用的站点

二、多浏览器测试实现

2.1、多浏览器的实现方案

python 复制代码
actor 测试工程师 as tester
participant 命令行参数 as command
participant 配置信息 as config
participant 底层代码 as code

autonumber
tester -> command : 通过命令执行测试用例,通过参数指定浏览器: pytest --browser=Chrome
command -> config : 获得配置信息
config -> code: 传给底层代码,使用配置信息

2.2、pytest hook 函数

  • pytest_addoption 添加命令行参数组/命令行参数
  • pytest_configure 解析命令行选项,每个插件都会用到这个hook函数

2.3、pytest_addoption 与 pytest_configure

  • pytest_addoption:

    1. parser.getgroup 创建/获取组名
    2. addoption 添加一个命令行选项
  • pytest_configure:

    1. 通过config 对象的getoption()方法获取命令行参数
    2. 将命令行获取到的内容赋值给变量
python 复制代码
web_env = {}


def pytest_addoption(parser: Parser):
    hogwarts = parser.getgroup("hogwarts")
    hogwarts.addoption("--browser", default='Chrome', dest='browser')


def pytest_configure(config: Config):
    browser = config.getoption("--browser", default="Chrome")
    print(f"通过命令行获取到的浏览器为{browser}")
    web_env["browser"] = browser
相关推荐
CoderJia程序员甲3 分钟前
告别“Ctrl+C/V”:聊聊最近试用的影刀RPA
自动化·rpa·影刀
dhdjjsjs6 分钟前
Day34 PythonStudy
python
一个java开发23 分钟前
Dask 配置文件加载机制说明
大数据·python
bj_zhb30 分钟前
图片的base64表示
python·llm
飞Link32 分钟前
【Django】Django 调用外部 Python 程序的完整指南
后端·python·django·sqlite
周杰伦_Jay38 分钟前
【Java集合与线程池深度解析】底层原理+实战选型+避坑指南(附代码)
java·开发语言·python
北京耐用通信44 分钟前
终结混合网络调试噩梦:耐达讯自动化实现EtherCAT对DeviceNet设备的直接读写
网络·人工智能·物联网·网络协议·自动化·信息与通信
BFT白芙堂44 分钟前
Franka机械臂“举一反三”:LLM Trainer如何通过单次演示实现自动化数据生成与长程任务学习
人工智能·学习·机器学习·自动化·模型训练·具身智能·franka
一人の梅雨1 小时前
淘宝关键字搜索接口深度解析:从动态策略适配到商业数据重构
python·重构
道19931 小时前
PyTorch 从小白到高级进阶教程[工业级示例](三)
人工智能·pytorch·python