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

举报
霍格沃兹测试开发 发表于 2023/06/09 18:17:27 2023/06/09
【摘要】 前言在日常工作中,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。其他网址可以使用不同的后缀,只使用相对地址。 常见情景比如我们的社区,不同的类别只需要改变我们的后缀即可,如下图:首页地址为:https://ceshiren.com/,我们选择查看热门帖子,如下图:网址变更为:https://ceshiren.com/top,我们也可以选择查看新的内...

前言

在日常工作中,我们经常是基于某个测试环境地址去测试某个项目,所以应该把它单独拿出来做为一个全局的配置。其他网址可以使用不同的后缀,只使用相对地址。

常见情景

比如我们的社区,不同的类别只需要改变我们的后缀即可,如下图:

在这里插入图片描述
首页地址为:https://ceshiren.com/,我们选择查看热门帖子,如下图:

在这里插入图片描述
网址变更为:https://ceshiren.com/top,我们也可以选择查看新的内容,如下图:

在这里插入图片描述

网址变更为:https://ceshiren.com/new。

我们可以发现,网址存在的共同部分为https://ceshiren.com/,我们将这部分作为我们的base_url,其他的网址可以视为base_url加不同的后缀。

上述情况转化为代码如下:

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()

    page = context.new_page()
    # 打开首页
    page.goto("https://ceshiren.com/")

    # 访问其他网址
    page.goto("https://ceshiren.com/new")

    context.close()
    browser.close()

base_url

我们已经知道我们可以使用https://ceshiren.com/作为我们的base_url,现在我们介绍base_url的使用,base_url 参数是在new_context() 新建上下文的时候使用

优化后的代码如下:

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context(base_url='https://ceshiren.com')

    page = context.new_page()
    # 打开首页
    page.goto("/")

    # 访问最新话题页
    page.goto("/new")

    context.close()
    browser.close()

这段代码与上一段代码能实现一样的效果。

pytest-playwright使用

在pytest-playwright 插件中已经自带了pytest-base-url 插件,我们有如下两种方式将base_url引入:

  • pytest.ini中配置,如下所示:
[pytest]
base_url=https://ceshiren.com
  • 使用命令行参数,如下所示:
pytest --base-url https://ceshiren.com

测试用例如下:

from playwright.sync_api import Page


def test_blog(page: Page):
    """首页"""
    page.goto("/")


def test_latest_topic(page: Page):
    
    page.goto("/new")

总结

本文主要介绍了playwright中base_url的使用,base_url的使用帮助我们降低了耦合性,一旦base_url改变,我们只需要修改base_url即可,不需要全部修改我们的网址,更方便我们的工作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。