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.在打印消息时,可以提供一些过滤方法。
本文来自博客园,作者:月色深潭,交流群:733423266,转载请注明原文链接:https://www.cnblogs.com/moonpool/articles/17491866.html

浙公网安备 33010602011771号