一、背景:
OpenApi运营统计功能,从接口到前端页面,一个接口涉及需要搜索的字段有好几个,每个页面都有搜索框,一个或者好几个。
搜索框的测试,一般是需要测试多种不同的组合数据,看看搜索结果是否符合预期,测试数据是需要按照测试用例可以获取到的,才可以测试到。目前,OpenApi的数据源是从graylog获取数据做聚合的,所以,如果graylog没有测试用例设计的数据,也是覆盖不到。综上所述,靠手工测试效率会比较低,而且覆盖率不高。
二、解决方案以及优点
1.解决方案
graylog收集大量的日志数据,利用海量数据的优势,通过自动化获取大批量的需要的数据,再将数据传参给搜索的接口进行请求,把请求响应回来的数据做分析判断,返回测试结果。
搜索框自动化测试流程图:
2.优点
1)一个接口存在多个需要搜索的字段,可以实现自动化搜索,提高效率
2)一个版本存在多个需要搜索的接口,可以实现多个接口多个字段自动化搜索,提高效率,快速发现主流程问题
3)可以对大量数据取值进行搜索,比如,获取1~9k页的所有数据的字段值,进行大排查测试,可以大幅度提高测试覆盖率,覆盖一些测试用例可能没有考虑到的异常场景。
三、设计思路
1.根据业务的实际情况,现在所有的搜索框接口的请求方式都是get请求,get请求把参数包含在url中,url实际上是个字符串,先要对字符串进行处理:
1)获取需要替换的url参数的key=value
# 截取url参数的key=value
@staticmethod
def find_url_value(url_source, key):
key_index = url_source.find(key)
if key_index != -1:
yu_index = url_source.find('&', key_index)
if yu_index == -