软件测试/测试开发丨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
相关推荐
天空属于哈夫克34 分钟前
拒绝被动响应:企业微信主动调用接口高阶方案
开发语言·python
belldeep9 分钟前
python:spaCy 工业级 NLP 库
python·自然语言处理·nlp·spacy
Flittly9 分钟前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(11)Autonomous Agents (自治智能体)
笔记·python·ai·ai编程
2301_7765087210 分钟前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
dmlcq12 分钟前
一文读懂 PageQueryUtil:分页查询的优雅打开方式
开发语言·windows·python
今儿敲了吗15 分钟前
python基础学习笔记第八章——异常
笔记·python·学习
umeelove3523 分钟前
【Flask】四、flask连接并操作数据库
数据库·python·flask
ProgramHan27 分钟前
十大排行榜——后端语言及要介绍
java·c++·python·php
小江的记录本28 分钟前
【反射】Java反射 全方位知识体系(附 应用场景 + 《八股文常考面试题》)
java·开发语言·前端·后端·python·spring·面试
志栋智能31 分钟前
AI超自动化运维,让IT运维自动化门槛更低
运维·网络·人工智能·安全·自动化