如何解决数据库列状态更新时如何写循环
我是 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 举报,一经查实,本站将立刻删除。