前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Playwright之多浏览器执行

Playwright之多浏览器执行

作者头像
无涯WuYa
发布2023-09-02 12:09:33
3290
发布2023-09-02 12:09:33
举报

Playwright实战详细地介绍了Playwright的优势、环境搭建、案例实战的过程。本文章主要阐述Playwright在多浏览器执行的过程。

不管是单体架构的产品还是微服务架构的产品,对质量交付团队而言实施基于业务场景的自动化测试是必不可少的,只不过实施的测试层次是不一样而已。我个人更加倾向于通过服务端自动化测试的模式来进行场景化=的测试,但是最上层的UI自动化测试是非常有必要的。而Playwright无疑是一个比较好的选择。

端到端测试主要是测试产品哪些维度了?我总结下来主要是测试产品如下几个维度的点:

  • 业务流程与业务逻辑,完整的业务场景、业务链
  • 业务链过程中页面的交互(如点击删除按钮需要弹出“确认”按钮等)
  • 浏览器的兼容性

当然除了上面列出来的还有很多的测试点,而Playwright是非常优秀的端到端自动化测试解决方案框架之一,使用它完全能够满足针对如上几点的测试诉求。下面详细阐述它对多浏览器的支持与执行的过程。以新浪邮箱登录为案例,代码如下:

代码语言:javascript
复制
#! /usr/bin/env python
# -*- coding:utf-8 -*-

import re
from playwright.sync_api import  sync_playwright,Page,expect
import  pytest
import  allure

def test_sina_url(page:Page):
  page.goto('https://mail.sina.com.cn/')
  expect(page).to_have_url(re.compile('https://mail.sina.com.cn/'))

@allure.title("新浪邮箱:验证用户名输入框提示信息")
def test_sina_username_title(page:Page):
  with allure.step('访问新浪邮箱首页'):
    page.goto("https://mail.sina.com.cn/")
  with allure.step('定位到元素属性'):
    divText=page.locator('body > div.mailLoginBox > div > div.mainBox.bg1 > div > div > div:nth-child(6) > div.loginBox > div.freeMailbox > div.usernameBox.focus > label').text_content()
    assert divText=='输入邮箱名/手机号'

@allure.title("新浪邮箱:验证登录信息为空的错误提示信息")
def test_sina_username_div(page:Page):
  with allure.step('访问新浪邮箱首页'):
    page.goto("https://mail.sina.com.cn/")
  with allure.step('输入登录账户为空'):
    page.locator('#freename').fill('')
  with allure.step('输入登录账户密码为空'):
    page.locator('#freepassword').fill('')
  with allure.step('点击登录按钮'):
    page.locator('body > div.mailLoginBox > div > div.mainBox.bg1 > div > div > div:nth-child(6) > div.loginBox > div.freeMailbox > div.loginOrRegister.clearfix > div.loginRegisterSubmit > a.loginBtn').click()
  with allure.step('获取登录信息为空的错误提示信息'):
    divText=page.locator('body > div.mailLoginBox > div > div.mainBox.bg1 > div > div > div:nth-child(6) > div.loginBox > div.freeMailbox > div.freeError > span.loginError.tip11').text_content()
  with allure.step('验证结果信息'):
    assert divText=='请输入邮箱名'

针对如上的代码,单独自定义指定单个浏览器执行,也可以指定多个浏览器执行,下面主要是指定多个浏览器执行,命令如下:

代码语言:javascript
复制
pytest -v -s  --browser webkit --browser firefox --browser chromium   test_sina.py

执行后的结果信息如下:

如上所示测试用例在每个浏览器都进行了执行

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python自动化测试 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档