问题描述
我是 Kotlin 编程的新手。
我使用 Rest Assured 和 Test(invocationCount = 4)
创建了一个 Maven 自动化项目。
我使用测试注释作为 @TimeUnit.SECONDS.sleep(30)
重复相同的测试 4 次。我使用 JSON
代码停止我的测试大约 30 秒。但它并不像预期的那样对我有用。所以我计划编写一个循环,当订单状态在数据库中更新时运行我的测试。
当我运行 Get API 调用时,它返回一个 {
"id": 13,"orderNo": "87748","isverificationrequired": false,"paymentMethodType": "CreditCard","paymentMethod": {
"paymentstatus": "Verificationrequired","dateLastUsed": 1608848423000,"dateCreated": 1608848177000,"dateUpdated": 1608848423000
},"invoice": {
"Invoicestatus": "Completed","dateCreated": 1608848180000
},"dateCreated": 1608848180000,"dateUpdated": 1608848266000,"orderstatus": "Authorized"
}
响应正文,如下所示
@Test(invocationCount = 4)
fun GetorderByID() {
RestAssured.baseURI = baseQAURL
//Test the Create Order POST API
val response = RestAssured.given()
.log()
.all()
.contentType(ordercontentType)
.`when`()
.get("/orders/13")
.then()
.log()
.all().extract().response().thenReturn()
assertEquals(response.statusCode,200)
if (response.statusCode == 200) {
//connect to db and run query
var database = DbConnection()
var con = database.connection()
var statement = con?.createStatement()
val query = CreateOrderQuery + JsonIncommOrderID.toString()
val sqlqueryResult = statement?.executeQuery(query)
//if condition to check the sqlqueryResult is not null
if (sqlqueryResult != null) while (sqlqueryResult.next()) {
DBOrderStatus = sqlqueryResult.getString("status")
}
// Read json response body and store the required value in a variable.
val createOrderIcSB: StringBuilder = StringBuilder(response.getBody().asstring())
val createOrderIcJsonObj: JsonObject = parser.parse(createOrderIcSB) as JsonObject
JsonorderStatus = createOrderIcJsonObj.string("status").toString()
assertEquals(JsonorderStatus,DBOrderStatus)
}
TimeUnit.SECONDS.sleep(30)
}
在上述 JSON 响应中,当存储过程触发时,订单状态每 30 秒更新一次。订单状态更新如下
- 授权在前 30 秒内完成
- 在第二个 30 秒内完成并完成
- 在过去 30 秒内稳定到已交付。
所以我的问题是,我想编写一个循环来不断检查数据库状态,当订单状态从授权更改为完成时,Get API 应该再次运行第二次。当订单状态在 30 秒后再次发生变化时,Get API 应该会再次从 Fulfilling 运行到 Settled。
请找到下面的代码,并告诉我在哪里可以添加 For 或 While 循环。
代码:
200
有人可以帮我吗?请....................... 请给我一个我该怎么做的想法。
我在谷歌上搜索并找到了 Awaitility 方法。任何人都可以指导我这是正确的方法与否。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)