10. jvm-sandbox之融入接口自动化测试

概述

做了一种比较有意思的尝试,就是将sandbox监控到的信息,通过MQ,传递给Fitnesse的接口自动化用例。
目前,尝试了将监控到的sql语句,传递给Fitnesse的接口自动化用例,这样就可以观察到接口之间,服务执行了那些sql语句。

实现思路

1.首先需要实现一个收集sql的sandbox模块,并成功加载到被测服务中。
2.编写一个测试服务,用于接受sandbox模块发送的sql语句信息,处理后,推送到MQ(我使用的是RabbitMq的Topic模式),使用“环境名称.服务名称”作为routingKey,exchangeName 为 "sandbox.mq.topic"。
3.接下来需要实现一个异步消费消息的Fitnesse Fixture。其中routingKey使用“环境名称.*”的通配方式。queneName可以是“固定名称+时间戳”,保证每次执行用例都有一个新的队列。exchangeName 为 "sandbox.mq.topic"。这样测试服务推送消息时,如果匹配到消费者的routingKey和队列,才会发送消息,不然丢弃消息。
4.Fixture中接受到消息后,可以将消息保存到redis中,我这里将消息保存到一个hashmap中。使用AtomicInteger生成一个自增数作为hashKey,这样做的原因是,redis中的hashmap是无序,而我又希望按照接受消息的顺序打印,有了自增数,我就可以使用for循环,按get(num)的方式打印消息。从头开始打印还是中间开始打印,可以自由选择。
5.在打印消息时,可以提供一些过滤方法。

posted @ 2023-06-19 18:21  月色深潭  阅读(215)  评论(0)    收藏  举报