在 Java 中使用 TestNG 从 JSON 读取测试数据
Reading test data from JSON with TestNG in Java
我正在尝试找到最简单的方法来将简单的 json 解析为 java 对象,以便在自动测试 (TestNG) 中使用 json 数据,但我不明白另一个各种库的示例。
我有这个代码:
@Test(dataProvider = "SearchData")
public void searchCatTest(String searchRequest, int expectedVal) {
CatScreen.search(searchrequest);
int actualVal = CatScreen.getSearchResultsNumber();
Assert.assertEquals(actualVal, expectedVal);
}
我有这个 json:
{ "dataSet": [
{
"searchRequest": "*]",
"expectedVal": 0
},
{
"searchRequest": "Tom",
"expectedVal": 1
},
{
"searchRequest": "1234",
"expectedVal": 0
} ] }
如何链接它们?
您可以使用以下库将 json 代码解析为 java :
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
你可以参考 link如何解析json代码。
@DataProvider(name = "json-data")
public static Object[][] getJSON(ITestContext context) throws FileNotFoundException {
String filename = <get name from context>
JsonArray array = new JsonParser().parse(new FileReader(filename))
.getAsJsonArray();
Gson gson = new Gson();
List < Map > list = gson.fromJson(array, List.class);
Object[][] objects = list.stream()
.map(testData - >
testData.values().stream().map(obj - >
doubletoint(obj)).toArray()).toArray(Object[][]::new);
return objects;
}
TestNG 将为每行数据创建一个新线程。
我正在尝试找到最简单的方法来将简单的 json 解析为 java 对象,以便在自动测试 (TestNG) 中使用 json 数据,但我不明白另一个各种库的示例。
我有这个代码:
@Test(dataProvider = "SearchData")
public void searchCatTest(String searchRequest, int expectedVal) {
CatScreen.search(searchrequest);
int actualVal = CatScreen.getSearchResultsNumber();
Assert.assertEquals(actualVal, expectedVal);
}
我有这个 json:
{ "dataSet": [
{
"searchRequest": "*]",
"expectedVal": 0
},
{
"searchRequest": "Tom",
"expectedVal": 1
},
{
"searchRequest": "1234",
"expectedVal": 0
} ] }
如何链接它们?
您可以使用以下库将 json 代码解析为 java :
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
你可以参考
@DataProvider(name = "json-data")
public static Object[][] getJSON(ITestContext context) throws FileNotFoundException {
String filename = <get name from context>
JsonArray array = new JsonParser().parse(new FileReader(filename))
.getAsJsonArray();
Gson gson = new Gson();
List < Map > list = gson.fromJson(array, List.class);
Object[][] objects = list.stream()
.map(testData - >
testData.values().stream().map(obj - >
doubletoint(obj)).toArray()).toArray(Object[][]::new);
return objects;
}
TestNG 将为每行数据创建一个新线程。