软件测试|web自动化测试神器playwright教程(十三)
  X7HGjGJ7MG9G 2023年11月02日 58 0

前言

我们在工作中,会遇到需要使用不同的硬件设备测试兼容性的问题,尤其是现在手机型号,屏幕大小分辨率五花八门的,我们基本不可能全部机型都用真机测试一遍,playwright提供了模仿机型的功能,我们可以使用playwright来模拟设备。

设置手机模式

配置需要模拟的设备,我们需要配置我们使用的设备,Playwright 就会模拟浏览器行为,例如"userAgent"、"screenSize"以及"viewport"是否"hasTouch"启用。

还可以为所有测试或特定测试模拟,以及设置以"geolocation"显示通知或更改."locale""timezone""permissions""colorScheme"

Playwright使用playwright.devices为选定的台式机、平板电脑和移动设备提供设备参数注册表。 它可用于模拟特定设备的浏览器行为,例如用户代理、屏幕尺寸、视口以及是否启用了触摸。所有测试都将使用指定的设备参数运行。

示例代码如下:

from playwright.sync_api import sync_playwright


def run(playwright):
    iphone_11 = playwright.devices['iPhone 11']
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context(
        **iphone_11,
    )
    page = context.new_page()
    page.goto('https://m.baidu.com')
    page.pause()


with sync_playwright() as playwright:
    run(playwright)

运行之后,结果如下图所示:

软件测试|web自动化测试神器playwright教程(十三)_屏幕尺寸

pytest-playwright测试用例

在pytest-playwright 测试用例中可以通过重写browser_context_args 来实现模拟各种设备。我们可以在conftest.py中确认需要模拟的设备,代码如下:

# conftest.py

import pytest


@pytest.fixture(scope="session")
def browser_context_args(browser_context_args, playwright):
    iphone_12 = playwright.devices['iPhone 12']
    return {
        **browser_context_args,
        **iphone_12,
    }

用例如下:

from playwright.sync_api import Page


def test_m_baidu(page: Page):
    page.goto("https://m.baidu.com/")

这样我们就可以实现使用playwright来指定设备来运行脚本。

总结

本文主要讲解了使用playwright模拟各种硬件设备的方法,我们可以使用这个方法模拟各种硬件设备,方便我们进行兼容性的测试。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
X7HGjGJ7MG9G
最新推荐 更多