Playwright + Pytest 自动化测试实战应用

本文介绍了Playwright这款强大的自动化测试工具,它支持多种浏览器和操作系统,并提供了录制脚本功能。通过结合Pytest,实现了测试脚本的参数化和断言。文章通过一个在线商城的实战案例,展示了如何使用Playwright进行脚本录制,以及如何整合Pytest进行自动化测试。总结指出,Playwright与Pytest的结合为UI自动化测试带来了便利。

在这里插入图片描述

工具介绍

Playwright是微软公司开发的一款非常强大的开源自动化测试工具。之所以强大有以下原因:

  1. 支持所有主流浏览器:Chrome、Firefox、Safari、MS Edge。

  2. 支持无头模式和有头模式运行。

  3. 提供同步、异步的API,可以结合Pytest使用。

  4. 支持浏览器端的自动化脚本录制。

  5. 针对Python语言的自动化工具。

  6. 支持的操作系统有Linux、Mac OS以及Windows。

  7. 可以使用docker进行运行环境的安装。

安装环境

  1. 安装Python,Playwright需要3.7及以上版本的Python,因此至少要安装Python3.7以上的版本(最好用3.7,我试了下3.8有兼容问题)。

  2. 到https://github.com/microsoft/playwright-python去下载项目代码,主要是那个local_requirements.txt。

  3. 使用pip3 install playwright==1.8.0a1(这里最好指定版本)。

  4. 使用 pip3 install -r local_requirements.txt安装所有的依赖包。

  5. 使用python3 -m playwright install 安装浏览器驱动模块(用清华的镜像)。

这里在命令窗口运行:pip3 -v config list查看系统中的pip.ini文件,下面这个是我的。

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
#index-url=http://mirrors.aliyun.com/pypi/simple/
#[install]
#trusted-host=mirrors.aliyun.com

这里需要注释掉aliyun,最好在白天或早上安装这个,速度会快些。其他时候还是用aliyun的镜像会快些。

  1. 检查安装是否成功,看到如下图界面,则表示安装成功。

在这里插入图片描述

脚本录制

Playwright的脚本录制需要使用命令codegen,下面详细解释一下这个命令的用法:
在这里插入图片描述
这个命令需要用的参数如下:

o或–output 指定保存脚本的文件路径及文件名

target 指定生成脚本的语言:Python、JavaScript、C#等

b 指定录制使用的浏览器:如:-b chromium(Chrome浏览器)、-b firefox、-b webkit三种。

项目实战

项目: 在线商城

  1. 脚本录制
python3 -m playwright codegen -o 'login_b2c.py' --target python -b chromium http://localhost:8080/b2c/index.html

在这里插入图片描述
以上为命令执行后进入的界面,当鼠标滑过元素的时候,会自动提示元素的xpath,而且启动的是无痕浏览模式,很容易和本地浏览的页面进行区分。

图片

点击登录链接,弹出下图:

在这里插入图片描述
输入必要的信息,进行登录。

登录成功,返回首页,注意红色框框部分,此处为断言目标。
在这里插入图片描述
关闭浏览器,输出脚本文件:这里可以看到我们的脚本文件正是命令中指定的那个文件名,右侧为脚本文件代码,这里使用的是同步模式。源码如下:

from playwright import sync_playwright
def run(playwright):
    browser = playwright.chromium.launch(headless=False)
    context = browser.newContext()
    # Open new page
    page = context.newPage()
    # Go to http://localhost:8080/b2c/index.html
    page.goto("http://localhost:8080/b2c/index.html")
    # Click text=/.*登录.*/
    page.click("text=/.*登录.*/")
    # assert page.url == "http://localhost:8080/b2c/login.html"
    # Click input[name="usern
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值