今天来讲讲使用Java结合最新的playwright来做UI自动化测试
目前网上大部分都是关于使用Python做自动化的教程,Java的比较少一些,但是我认为使用Java做自动化还是有优点的,性能就好一点,当然大家根据实际需求来。
一、 普通UI测试
创建 Maven 项目:
在你选择的 IDE(如 IntelliJ IDEA 或 Eclipse)中创建一个新的 Maven 项目。**添加依赖到
pom.xml
**:(我使用的jdk1.8) 打开pom.xml
文件并添加以下依赖:<dependencies> <!-- Playwright --> <dependency> <groupId>com.microsoft.playwright</groupId> <artifactId>playwright</artifactId> <version>1.41.0</version> <scope>test</scope> </dependency> <!-- TestNG --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.4.0</version> <scope>test</scope> </dependency> </dependencies>
示例测试用例
接下来,编写一个简单的测试用例,使用 Playwright 打开 Google 页面,并验证页面标题。
创建测试类:
在你的 Maven 项目中,创建一个新的测试类BaiduTest.java
。import com.microsoft.playwright.*; import org.testng.Assert; import org.testng.annotations.*; public class BaiduTest { Playwright playwright; Browser browser; Page page; @BeforeClass public void setUp() { playwright = Playwright.create(); BrowserType.LaunchOptions options = new BrowserType.LaunchOptions(); options.headless = false; // 设置为有头浏览器 browser = playwright.chromium().launch(options); page = browser.newPage(); } @Test public void testBaiduHomePage() { page.navigate("https://www.baidu.com"); String title = page.title(); Assert.assertEquals(title, "百度一下,你就知道"); } @AfterClass public void tearDown() { browser.close(); playwright.close(); } }
使用 TestNG 管理测试用例
使用
@Test
注解:这标记了一个方法作为测试方法。使用
@BeforeClass
和@AfterClass
注解:分别用于在测试类中所有测试方法之前和之后执行代码。断言:使用
Assert
类来进行断言,验证测试结果是否符合预期。
生成测试报告
在
pom.xml
中配置 TestNG 生成测试报告的能力。<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
创建
testng.xml
文件来管理测试套件:<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Sample Suite"> <test name="Baidu Tests">