【nodejs版playwright】03-fixture能力封装实战

本文介绍了Playwright中的fixture在测试用例中的应用,包括页面操作(如POM封装)和数据库操作的封装,强调了不同fixture的隔离性和如何在测试中合并fixture以满足复杂场景需求。

fixture 介绍
官网: https://playwright.dev/docs/test-fixtures
作用: 为测试用例提供已封装的能力,如数据库操作,页面操作等
特点: 不同的测试用例之间使用相同fixture,是相互隔离的。如A用例修改了request(内建的fixture,用于做接口测试)中的超时时间,在B用例中沿用fixture定义的超时时间

1. 页面POM的fixture封装

POM定义

// app-list-page.ts
import {
   
    type Page, type Locator, expect } from "@playwright/test";

export class AppListPage {
   
   
    private readonly searchInput: Locator  // 应用列表页搜索框

    constructor(public readonly page: Page) {
   
   
        this.searchInput = this.page.getByPlaceholder('请输入应用名称或包名');
    }

    /**
     * 访问应用列表页(必须先小米账号登录)
     */
    async goto() {
   
   
        await this.page.goto('/distribute');
    }

    /**
     * 校验应用列表页是否存在该应用, 并且应用状态是否为指定状态
     * @param packageName 应用包名
     * @param status 应用状态
     */
    async checkAppListStatus(packageName: string, status: string) {
   
   
        console.log(`开始检查应用列表中是否存在应用: ${
     
     packageName}`, `应用状态是否为: ${
     
     status}...`);
        this.searchInput.fill(packageName);
        this.page.getByLabel('图标: search').locator('svg').click();
        const visibale = this.page.getByText(`包名:${
     
     packageName}`).isVisible({
   
    timeout: 5000 });
        if (visibale) {
   
   
            console.log(`===>[PASS]应用: ${
     
     packageName} 存在.`);
            await expect(this.page.getByRole('cell', {
   
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值