温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何测试java API接口

发布时间:2026-09-11 21:50:40 来源:亿速云 阅读:86 作者:小樊 栏目:编程语言

测试 Java API 接口通常可以从单元测试、集成测试、接口(API)测试工具、自动化测试几个层面来做。下面按常见场景给你一个清晰指引。


一、单元测试(开发者最常用)

适合:测试某个 Controller / Service / 方法是否正确

1. 使用 JUnit + Mockito

@SpringBootTest
class UserControllerTest {

    @MockBean
    private UserService userService;

    @Autowired
    private UserController userController;

    @Test
    void testGetUser() {
        when(userService.getUser(1L)).thenReturn(new User(1L, "Tom"));

        User user = userController.getUser(1L);
        assertEquals("Tom", user.getName());
    }
}

常用框架:

  • JUnit 5
  • Mockito(mock 依赖)
  • AssertJ(断言)

二、接口层测试(最推荐)

适合:直接测试 HTTP API 是否正确

1. 使用 Spring MockMvc(不启动真实端口)

@SpringBootTest
@AutoConfigureMockMvc
class UserApiTest {

    @Autowired
    MockMvc mockMvc;

    @Test
    void testGetUserApi() throws Exception {
        mockMvc.perform(get("/users/1"))
               .andExpect(status().isOk())
               .andExpect(jsonPath("$.name").value("Tom"));
    }
}

✅ 优点:快、稳定、适合 CI


2. 使用 TestRestTemplate / WebTestClient(启动真实端口)

@SpringBootTest(webEnvironment = RANDOM_PORT)
class UserApiIntegrationTest {

    @Autowired
    TestRestTemplate restTemplate;

    @Test
    void testApi() {
        ResponseEntity<User> resp =
            restTemplate.getForEntity("/users/1", User.class);
        assertEquals(200, resp.getStatusCodeValue());
    }
}

三、使用 Postman / curl(手动测试)

适合:开发调试、前端联调

curl 示例

curl -X GET http://localhost:8080/users/1

Postman

  • 新建 Request
  • 设置 URL / Method / Header / Body
  • 可写 Test 脚本做断言

四、自动化接口测试工具

适合:测试团队 / 回归测试

常见工具:

  • Postman(Collection + Newman)
  • JMeter(性能 + 接口)
  • REST Assured(Java 写接口测试)

REST Assured 示例

given()
    .when().get("/users/1")
    .then()
    .statusCode(200)
    .body("name", equalTo("Tom"));

五、测试内容建议覆盖

✅ 正常流程
✅ 参数缺失 / 错误
✅ 权限 / 鉴权
✅ 异常码(400 / 401 / 500)
✅ 边界值


六、推荐组合(实战)

  • 开发阶段:JUnit + MockMvc
  • 联调阶段:Postman
  • CI/CD:MockMvc + REST Assured
  • 性能:JMeter

如果你愿意,可以告诉我:

  • 用的是 Spring Boot / Spring MVC / 普通 Java
  • 测的是 REST API / WebSocket / RPC
  • 手动测还是自动化

我可以直接给你可运行的示例代码

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI