微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发()

  本篇文章为你整理了微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发()的详细内容,包含有 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发,希望能帮助你了解 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发。

  大家好,我是六哥!

  又有好长一段时间没更文了,不是我懒,而是确实在更文上,没有以前积极了,这里是该自我检讨的。

  其实不是我不积极,而是相对更文学习来说,优先级不是最高。

  对我而言,目前最重要的就是减肥,除了下雨下雪,我都坚持每天5公里,keep记录如下:

  早在四天前就完成了playwright的框架开发,因为一些事要处理就把文章的事搁置了。

  下面将为大家分享关于playwright的自动化测试框架的设计与实现,这里仅分享思路,感兴趣的同学请自行尝试!

  二、如何实现

  1、框架要素

  延续了所有框架的通用要素:

  日志 测试步骤

  报告 失败截图

  配置文件 数据源设计

  公共函数 API封装

  测试数据 参数化、解耦

  测试套件 测试用例设计、组装

  日志可以很好辅助我们定位问题,这里我使用的是log4j,简单配置即可使用,测试代码如下:

  

package com.playwrght.frame.log;

 

  import org.apache.log4j.Logger;

  import org.testng.annotations.Test;

  public class TestLog {

   * log4j日志

   private static Logger logger = Logger.getLogger(TestLog.class);

   @Test

   public void testLog() {

   logger.info("this is info log!!");

   logger.error("this is error log!!");

  

 

  3、浏览器的封装

  playwrght就三个浏览器,相对也比较简单,这里直接贴图了,如下:

  4、基础层

  这里主要用于处理,元素对象和原生API的封装,示例如下图:

  
 

  我只写了点击和输入的,其他的没写,感兴趣的同学请自己尝试。

  5、测试用例

  就是调用封装好的API,示例代码如下:

  

package com.playwrght.frame.testcase;

 

  import com.playwrght.frame.page.BasePage;

  import com.playwrght.frame.report.TestFailListener;

  import io.qameta.allure.*;

  import org.testng.Assert;

  import org.testng.annotations.*;

  @Epic("登录功能测试")

  @Feature("登录功能")

  @Listeners(TestFailListener.class)

  public class TestLogin extends BasePage {

   BasePage basePage;

   @BeforeClass

   public void beforeClass() {

   basePage = new BasePage();

   //用例编号

   @TmsLink("562")

   //bug编号

   @Issue("4042")

   //bug严重等级,优先级,包含blocker, critical, normal, minor, trivial 几个不同的等级

   @Severity(SeverityLevel.TRIVIAL)

   //用例描述

   @Description("测试一个流程,用作回归冒烟测试")

   *功能块,具有相同feature或astory的用例将规整到相同模块下,执行时可用于筛选

   @Story("登录模块-登录功能")

   @Test(description = "验证登录功能", dataProvider = "loginData")

   public void testDemo(String userName,String passWord,String msg) throws Exception {

   basePage.open();

   basePage.fill("用户名",userName);

   basePage.fill("密码",passWord);

   basePage.click("登录按钮");

   String content = basePage.getTextContent("错误提示");

   Assert.assertEquals(content,msg);

   @AfterClass

   public void afterClass() {

   basePage.quite();

   @DataProvider(name = "loginData")

   public Object[][] loginData() {

   return new Object[][]{

   {"user1","1","用户名或密码错误"},

   {"user2","2","用户名或密码错误"},

   {"user3","3","error!"},

  

 

  6、测试报告

  因徒弟说playwight+python+飞书很秀,我一看报告就是allure,好看是真的。

  就一个配置出来的东西,没什么,就那么回事吧,也不难,所以不熟悉的同学,看看官方文档就能很快上手!

  加了监听,即可实现运行失败截图,如下面代码:

  

package com.playwrght.frame.report;

 

  import io.qameta.allure.Attachment;

  import org.testng.ITestResult;

  import org.testng.TestListenerAdapter;

  import static com.playwrght.frame.page.BasePage.page;

  public class TestFailListener extends TestListenerAdapter {

   @Override

   public void onTestFailure(ITestResult result) {

   screenshot();

   @Attachment(value = "screen shot",type = "image/png")

   public byte[] screenshot(){

   byte[] buffer = page.screenshot();

   return buffer;

  

 

  说明:这里我没用Jenkins驱动生成报告,没必要,全在maven中完成了!

  测试报告效果如下:

  运行失败截图:

  持续集成我就不写了,百度一搜一大把,真的超级简单,可自行尝试!

  写到这里,关于Playwright系列教程的文章就基本完结了!

  总体感觉比Selenium写框架简单多了,至于为什么,懂得人自然也懂,这里就不分享了,感兴趣的同学可以自行尝试,也可以通过公号找到我进行交流!

  我是六哥,爱减肥的六哥,后面还会为大家分享更多技术文章,还请继续关注我!

  
软件测试交流QQ群:721256703,期待你的加入!!

  欢迎关注我的微信公众号:软件测试君

  
 

  以上就是微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发()的详细内容,想要了解更多 微软出品自动化神器【Playwright+Java】系列(十二)测试框架的设计与开发的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: