如何在Gatling Simulation中声明Couchbase中的记录计数

时间:2018-07-18 10:22:37

标签: scala-gatling

我正在尝试捕获在运行加特林模拟测试时创建的记录。

我的情况是

  • 从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

加特林

1 个答案:

答案 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

}