首页 > 编程语言 >微软出品自动化神器【Playwright+Java】系列(八) 之 使用 Playwright进行API接口测试

微软出品自动化神器【Playwright+Java】系列(八) 之 使用 Playwright进行API接口测试

时间:2022-12-18 12:35:39浏览次数:57  
标签:playwright Java request API put import Playwright data

前言

我喜欢周末是因为,可以做一些我自己喜欢的事。

比如我插上耳机,写点东西就能坐上一天,这也许算是属于我自己的一份静谧吧。

想系统学习请参考:Playwright+Java入门

使用Playwright进行API测试

1、总体感受

和其他API的依赖比起来,感觉使用起来不是很舒服,而且感觉繁琐呢,肯定是我研究的不够深入,不熟引起的。

2、初始化配置

这一部分相当于httpclient的初始化客户端操作,示例代码如下:

@BeforeClass
public void beforeClass() {
  playwright = Playwright.create();
  request = playwright.request().newContext(new APIRequest.NewContextOptions()
          .setBaseURL("http://localhost:8090"));
}

销毁操作,示例代码如下:

@AfterClass
public void afterClass() {
    if (request != null) {
        request.dispose();
        request = null;
    }
    if (playwright != null) {
        playwright.close();
        playwright = null;
    }
}

3、编写API测试

效果如下:

image.png

image.png

4、完整代码

这里我仅用查询(GET)和新增接口(POST)进行演示,完整示例代码如下:

package com.playwight.test;

import com.microsoft.playwright.APIRequest;
import com.microsoft.playwright.APIRequestContext;
import com.microsoft.playwright.APIResponse;
import com.microsoft.playwright.Playwright;
import com.microsoft.playwright.options.RequestOptions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.util.HashMap;
import java.util.Map;

import static org.testng.Assert.assertTrue;

public class TestGitHubAPI {

    private Playwright playwright;
    private APIRequestContext request;

    @BeforeClass
    public void beforeClass() {
        playwright = Playwright.create();
    }

    /**
     * get请求
     */
    @Test
    public void testGetAPi() {
        request = playwright.request().newContext(new APIRequest.NewContextOptions()
                .setBaseURL("http://localhost:8090"));
        APIResponse getAPIResponse = request.get("/students");
        assertTrue(getAPIResponse.ok());
        System.out.println(getAPIResponse.text());
    }
    
   /**
     * post请求
     */
    @Test
    public void testPostApi() {
        Map<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/json");
        request = playwright.request().newContext(new APIRequest.NewContextOptions()
                .setBaseURL("http://localhost:8090")
                .setExtraHTTPHeaders(headers));
        Map<String, String> data = new HashMap<>();
        data.put("className", "className");
        data.put("courseName", "english");
        data.put("email", "[email protected]");
        data.put("name", "xiaoqiang");
        data.put("score", "90");
        data.put("sex", "boy");
        data.put("studentId", "00099");
        APIResponse postAPIResponse = request.post("/studentAdd",
                RequestOptions.create().setData(data));
        assertTrue(postAPIResponse.ok());
        System.out.println(postAPIResponse.text());
    }


    @AfterClass
    public void afterClass() {
        if (request != null) {
            request.dispose();
            request = null;
        }
        if (playwright != null) {
            playwright.close();
            playwright = null;
        }
    }

}

写在最后

感觉还是写API测试简单,而且好上手,难道是我错觉吗?有兴趣的同学可以自行尝试!

标签:playwright,Java,request,API,put,import,Playwright,data
From: https://www.cnblogs.com/longronglang/p/16990165.html

相关文章

  • Java 代码
    AOP日志:需引入aop-start,lombok或任何一个日志框架importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.*;importorg.springframework.......
  • 微软出品自动化神器【Playwright+Java】系列(七) 之 元素的可操作性验证
    前言昨天在某平台发表了一篇这系列的文章,结果不但提示说有违禁词(java也算?),然后文章审核通过后,文章还找不到,不到去哪了,表示很郁闷,去反应未果,确实有点尴尬了。元素的可操作性......
  • 微软出品自动化神器【Playwright+Java】系列(六) 之 字符输入、单元素键盘事件操作、上
    前言:今天一早起床,就一直太阳穴疼,吃了四片去痛片已经无效,真的是疼的直恶心。如果说学习或者写文章,能够缓解头疼的话,那我想说,我还能坚持一会.....很久没更新这系列的文章了......
  • 微软出品自动化神器【Playwright+Java】系列(七) 之 元素的可操作性验证
    前言昨天在某平台发表了一篇这系列的文章,结果不但提示说有违禁词(java也算?),然后文章审核通过后,文章还找不到,不到去哪了,表示很郁闷,去反应未果,确实有点尴尬了。元素的可操作......
  • JavaScript中的防抖与节流-图文版
    01、防抖还是节流防抖与节流目的都是避免一定时间内,大量重复的操作造成的性能损耗。因此原理也类似,都是阻止过多的事件执行,只保留一部分来执行。适用场景略有不同,也有......
  • Eolink神技之二、API全生命周期管理
    Eolink神技之二、API全生命周期管理目录​​Eolink神技之二、API全生命周期管理​​​​Eolink全API全生命周期管理解决的问题​​​​演示过程​​​​一、创建项目文档​......
  • Java急速转职GoLang工程师资料
    在这个百年未有之大变局之际,此文送给需要升值加薪的雇佣者。文章目录​​入门​​​​了解、熟悉GoLang​​​​实战​​​​实战壹​​​​实战贰​​​​面试​​​​资料......
  • Playable API - 动画混合
    涉及到动画混合常见例子a)根据行走速度慢慢从走变成跑b)角色在跑步时,同时播放向左或向右倾斜动画c)fps游戏中,角色边跑边攻击(需要动画分层+avatarMask)d) 状态机动画......
  • Playable API - 多个Animation Clip间切换播放
    #用到的脚本usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Animations;usingUnityEngine.Playables;publicclassPlayAnimClipOneByO......
  • Playable API - 简单播放Animation Clip
    用到的资源:GitHub-unity3d-jp/unitychan-crs:Unity-Chan"CandyRockStar"LiveDemo这边直接在他提供的Scene上修改PlayableAPI来播放AnimationClip的脚本:usin......