首页 > 其他分享 >软件测试|web自动化测试神器playwright教程(十三)

软件测试|web自动化测试神器playwright教程(十三)

时间:2023-08-02 17:25:21浏览次数:39  
标签:web playwright context browser 软件测试 page 模拟 设备

前言

我们在工作中,会遇到需要使用不同的硬件设备测试兼容性的问题,尤其是现在手机型号,屏幕大小分辨率五花八门的,我们基本不可能全部机型都用真机测试一遍,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)

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

在这里插入图片描述

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模拟各种硬件设备的方法,我们可以使用这个方法模拟各种硬件设备,方便我们进行兼容性的测试。

获取更多技术资料,请点击!

标签:web,playwright,context,browser,软件测试,page,模拟,设备
From: https://www.cnblogs.com/hogwarts/p/17601230.html

相关文章

  • 软件测试|web自动化测试神器playwright教程(十四)
    前言我们在日常工作中,经常会遇到下面的情况,我们需要在一个下拉框中选择一个选项:在使用selenium定位的过程中,我们可以选择使用selenium的Select类,有了playwright,我们的操作会变得更简单一些。playwright也提供了select的方法进行操作。select用法使用locator.select_option(......
  • 软件测试|web自动化测试神器playwright教程(十五)
    前言我们在日常工作中,会经常遇到弹出警告框的问题,弹框无法绕过,必须处理才可以执行后续的测试,所以弹框处理也是我们必须掌握的一个知识。弹框通常分为3种,分别为alert,confirm,promot。alert弹框:只有信息和确定按键confirm弹框:在alert弹窗基础上增加了取消按钮prompt弹框:在confi......
  • 软件测试|web自动化测试神器playwright教程(十六)
    前言在我们的日常工作中,经常会遇到文件下载的事件,如下图:我们可以看到在下载文件时会弹出一个Windows对话框,我们知道,selenium只能操作web页面,无法操作Windows对话框,使用selenium时,我们可以借助autoit等工具实现该功能。playwright则可以不借助其他工具实现文件的下载。文件下......
  • 小程序中web-view网页中打开或返回小程序页面
    小程序中web-view网页中使用JSSDK提供的接口打开或返回小程序页面1、引入JSSDK文件2、判断是否在小程序环境let_this=this;wx.miniProgram.getEnv(function(res){if(res.miniprogram){_this.miniprogram=true;}})3、根据是否小程序环境,执行操作if(th......
  • 软件测试|教你如何离线安装第三方库
    前言在日常工作生活中,我们有时需要在无法联网的设备中安装Python第三方库,在联网的情况下,我们安装第三方库只需要一条pip命令即可,运行命令之后,会自动开始下载;当我们在无法联网的情况下,我们就需要先行下载好第三方库,传输到未联网的电脑,并使用命令行安装。本文我们以安装requests库......
  • 软件测试|pip安装第三方库报代理错误,怎么解决
    前言pip是我们使用python时最常用的一个工具,我们安装卸载更新Python的第三方库都是依靠这个命令的,即使我们是使用pycharm来管理我们的第三方库,本质上还是通过pip来实现第三方库的安装卸载更新的。因此,对于一些在使用pip时出现的报错,进行一些经验的总结就很有必要了。安装第三方......
  • The Report Viewer Web Control HTTP Handler has not been registered in the applic
     system.webServer内加<handlers><addname="ReportViewerWebControlHandler"preCondition="integratedMode"verb="*"path="Reserved.ReportViewerWebControl.axd"type="Microsoft.Reporting.WebForms.Htt......
  • WebApi接口的调用和传参
    publicCommon.mdlResultModel<mdlGetHistoryData>GetHistoryDataByCondition(intpDeviceId,intpPageIndex,intpPageSize,stringpStartTime,stringpEndTime)       {           Common.mdlResultModel<mdlGetHistoryData>objResult=newCommon.m......
  • 软件测试报告的作用在哪?
    软件测试报告是测试工作的重要成果之一,它是测试人员向项目团队和相关利益相关者传递测试结果和评估软件质量的文档。软件测试报告具有以下几个重要作用:1、向项目团队和管理层提供测试结果软件测试报告会详细汇报测试的执行情况、测试用例覆盖的范围、发现的缺陷和问题等信......
  • web渗透测试(10):文件包含
    许多应用程序中,开发人员需要包含文件来加载类或在多个网页之间共享一些模板。 文件包含漏洞来自缺乏过滤,当用户控制的参数在调用包含函数(例如,PHP中的require,require_once,include或include_once)中用作文件名的一部分时。如果对这些方法之一的调用容易受到攻击,则攻击者将能够操......