微軟出品自動化神器Playwright,不用寫一行代碼(Playwright+Java)系列(三) 之 手把手帶你結合TestNG測試框架寫一個腳本

寫在前面

官方給的栗子是Junit,但是我還是用TestNG來進行腳本的編寫,這裏只分享思路,不管是哪個測試框架基本思路都是一樣的,喜歡用官方的Junit的,建議查看官方文檔

如何編寫測試腳本

在@BeforeClass方法中初始化Playwright和Browser並在@AfterClass中銷燬它們,具體示例如下:

import com.microsoft.playwright.*;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 用例編寫
 */
public class TestExample {

    static Playwright playwright;
    static Browser browser;
    static BrowserContext context;
    static Page page;

    @BeforeClass
    static void launchBrowser() {
        playwright = Playwright.create();
        browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setArgs(Collections.singletonList("--start-maximized"))
                .setHeadless(false).setSlowMo(5000));
        context = browser.newContext(new Browser.NewContextOptions()
                .setViewportSize(1920, 1080));
        page = context.newPage();
    }


    @Test
    public void shouldSearchSoftTest() throws InterruptedException {
        page.navigate("https://www.baidu.com/");
        page.locator("#kw").fill("公衆號:軟件測試君");
        page.locator("#kw").press("Enter");
        String value = page.getAttribute("#kw", "value");
        Assert.assertEquals(value, "公衆號:軟件測試君");
        System.out.println(page.url());
    }


    @AfterClass
    public void afterClass() {
        browser.close();
        context.close();
        playwright.close();
    }

}

寫在最後

至於測試用例的串聯、執行、報告展示方面,個人還是喜歡TestNg,喜歡JUnit的同學可以參考Junit5。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章