对这个论坛还很陌生,还没有编写自动化测试,但是就这样了....
我正在为 API 调用编写一些自动化测试 - IntelliJ 中的 java / Maven 项目中的 200、204、400、401、403 等。我正在使用 2 个不同的数据提供者。第一个用于 200,第二个用于 204 / 400 / 401 / 403。对于 200,我从 Excel 电子表格中获取帐户并将它们作为参数传递给请求。我已经设法让 204 开始工作,因为我在请求中对这些值进行了硬编码。当涉及到 200 时,当我返回 200 Object[][] 时,我收到了 MethodMatcherException。以下是一些测试片段:
403的数据提供者
@DataProvider(name = "accountData") public Object[][] provideData(方法方法){
Object[][] accountDataFor403 = {
{"Z1234567"}, {"Z234567"}, {"Z3456789"}}
String methodName = method.getName();
// if (methodName.equals("get403Response")) {
// return accountDataFor403;
200响应的数据提供者
@DataProvider(name = "accountData1") public Object[][] provideData1(Method 方法) {
String[][] accountDataFor200 = ExcelUtils.excelArray();
return accountDataFor200;
}
使用数据提供程序“accountData”或“accountData1”调用的方法示例(200 和 403 的方法几乎相同
@Test(dataProvider = "accountData1") public void get200Response(String accountNumber) {
String response = given().log().all()
.headers("Authorization", returnToken())
.headers("X-Correlation-ID", "me123")
.headers("content-type", "application/json")
.body(payloads.myFile(accountNumber))
.when()
.post("URL goes here")
.then().log().all().assertThat().statusCode(200).extract().response().asString();
在 403 DataProvider 上,我有 3 个帐户,当传递给 @Test - get403Response 时,将触发 3 X 403 测试,每个测试都传递帐号。
当我尝试对 200(仅供参考,我在 Excel 表中有 3 个帐户)运行相同的测试时,执行完全相同的测试。此时我收到 MethodMatcherException。我明白为什么我会收到此错误,因为我在这两种方法中传递的参数数量需要相同。但是为什么我在 403 测试中没有收到这个错误?????这些方法返回二维数组,“get200Response”和“get403response”都有一个字符串作为参数。
对于 200 - 我如何从“ExcelUtils.excelArray();”传递 3 个帐户以便按顺序处理(与 403 测试相同?)
谢谢
不知道从这里去哪里