我正在尝试捕获在运行加特林模拟测试时创建的记录。
我的情况是
从csv中读取json数据并发布到由微服务使用的kafka并将数据存储到沙发床中,
由于kafka在异步模式下发布消息,所以我们无法知道在数据库中创建了多少条记录。
有什么办法设法从长沙发中获取数据并进行断言,以便如果长沙发中的记录与请求不相等,那么模拟将失败?
val scn = scenario("Order test sceanrio")
.feed(csv("TestOrder.csv").circular)
.exec(ProducerBuilder[Array[Byte], Array[Byte]]())
setUp(scn.inject(atOnceUsers(count))).protocols(kafkaProtocol)
//.assertion(getCouchbaseOrderCount == count) // not supported by
加特林
答案 0 :(得分:0)
我已通过在模拟中使用tearDown解决了此问题。 下面是用于加特林的催泪弹代码,
after {
println("**************** Asserting scenario *****************")
assert(orderCount() == count)
}
def orderCount(): Int = {
val cluster = openConnection
val bucket: Bucket = cluster.openBucket("Order", "password");
println(bucket)
val query = "SELECT meta().id FROM `Order`"
Thread.sleep(1000)
val orderCount: Int = bucket.query(N1qlQuery.simple(query)).allRows().size();
println(" Order Count :: " + orderCount)
orderCount
}