rest 浏览器测试
- 作者仓库星标 0
- 作者仓库 skills-registry
REST Assured - Quick Reference
Deep Knowledge: Use
mcp__documentation__fetch_docswith technology:rest-assuredfor comprehensive documentation.
When NOT to Use This Skill
- Unit Tests - Use
junitwith Mockito for isolated tests - E2E Browser Tests - Use Selenium or Playwright
- WebSocket Testing - Use dedicated WebSocket testing tools
- Non-Java Projects - Use language-specific HTTP clients
- GraphQL APIs - Consider GraphQL-specific testing tools
Pattern Essenziali
GET Request
given()
.baseUri("http://localhost:8080")
.contentType("application/json")
.when()
.get("/api/v1/users/1")
.then()
.statusCode(200)
.body("name", equalTo("John"));
POST Request
given()
.contentType("application/json")
.body("""
{"name": "John", "email": "john@example.com"}
""")
.when()
.post("/api/v1/users")
.then()
.statusCode(201)
.body("id", notNullValue());
Spring Boot Integration
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class UserApiTest {
@LocalServerPort
private int port;
@BeforeEach
void setUp() {
RestAssured.port = port;
}
@Test
void shouldGetUsers() {
given()
.when().get("/api/v1/users")
.then().statusCode(200);
}
}
Authentication
// Bearer Token
given().header("Authorization", "Bearer " + token)
// Basic Auth
given().auth().basic("user", "pass")
Hamcrest Matchers Comuni
| Matcher | Uso |
|---|---|
equalTo(value) |
Exact match |
notNullValue() |
Not null |
hasSize(n) |
Collection size |
containsString(str) |
String contains |
Anti-Patterns
| Anti-Pattern | Why It's Bad | Solution |
|---|---|---|
| Hardcoding base URI | Not portable across environments | Use RestAssured.baseURI or config |
| Not setting contentType | Request may fail or be misinterpreted | Always set contentType for POST/PUT |
| Ignoring status codes | Silent failures | Always assert status code |
| Not using path parameters | Hard to read, error-prone | Use {id} placeholders |
| Testing too much in one test | Hard to debug | One endpoint/scenario per test |
| No authentication testing | Security gaps | Test auth headers, tokens |
| Not validating response schema | API contract violations | Use JSON schema validation |
Quick Troubleshooting
| Problem | Likely Cause | Solution |
|---|---|---|
| "Connection refused" | Server not running | Start server, verify port |
| "Expected status 200 but was 500" | API error or wrong request | Check server logs, validate request body |
| "Cannot deserialize JSON" | Wrong content type or body format | Verify Content-Type header, check JSON |
| Authentication fails | Missing/wrong token | Check Authorization header |
| Timeout | Slow API or network issue | Increase timeout or investigate performance |
| "Path not found" | Wrong URL or method | Verify endpoint exists, check HTTP method |
Reference Documentation
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: claude-dev-suite/claude-dev-suite — distributed by TomeVault.
- 流狐分类
- 通用
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 When NOT to Use This Skill
Unit Tests - Use junit with Mockito for isolated tests E2E Browser Tests - Use Selenium or Playwright WebSocket Testing - Use dedicated WebSocket testing tools
Pattern Essenziali
Pattern Essenziali
GET Request
GET Request
POST Request
POST Request
Spring Boot Integration
Spring Boot Integration
Authentication
Authentication
# REST Assured - Quick Reference
> **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `rest-assured` for comprehensive documentation.
## When NOT to Use This Skill
- **Unit Tests** - Use `junit` with Mockito for isolated tests
- **E2E Browser Tests** - Use Selenium or Playwright
- **WebSocket Testing** - Use dedicated WebSocket testing tools
- **Non-Java Projects** - Use language-specific HTTP clients
- **GraphQL APIs** - Consider GraphQL-specific testing tools
## Pattern Essenziali
### GET Request
```java
given()
.baseUri("http://localhost:8080")
.contentType("application/json")
.when()
.get("/api/v1/users/1")
.then()
.statusCode(200)
.body("name", equalTo("John"));
```
### POST Request
```java
given()
.contentType("application/json")
.body("""
{"name": "John", "email": "john@example.com"}
""")
.when()
.post("/api/v1/users")
.then()
.statusCode(201)
.body("id", notNullValue());
```
### Spring Boot Integration
```java
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class UserApiTest {
@LocalServerPort
private int port;
@BeforeEach
void setUp() {
RestAssured.port = port;
}
@Test
void shouldGetUsers() {
given()
.when().get("/api/v1/users")
.then().statusCode(200);
}
}
```
### Authentication
```java
// Bearer Token
given().header("Authorization", "Bearer " + token)
// Basic Auth
given().auth().basic("user", "pass")
```
## Hamcrest Matchers Comuni
| Matcher | Uso |
|---------|-----|
| `equalTo(value)` | Exact match |
| `notNullValue()` | Not null |
| `hasSize(n)` | Collection size |
| `containsString(str)` | String contains |
## Anti-Patterns
| Anti-Pattern | Why It's Bad | Solution |
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> When NOT to Use This Skill → Pattern Essenziali → GET Request → POST Request → Spring Boot Integration → Authentication
要点 -> Deep Knowledge · Unit Tests · E2E Browser Tests · WebSocket Testing · Non-Java Projects · GraphQL APIs
文件/命令 -> mcpdocumentationfetchdocs · rest-assured · junit · equalTo(value) · notNullValue() · hasSize(n) · containsString(str)
内容 SHA-256 -> 3e84b40fe8d6
原文结构
适用与边界
原文中的明确线索
mcpdocumentationfetchdocs、rest-assured、junit、equalTo(value)、notNullValue()、hasSize(n)、containsString(str)