在测试搜索框的时候,我们不能只是在搜索框内输入搜索内容进行检索,我们还需要把检索出来的内容与数据库检索出来的内容进行比较,完全一致才能证明搜索框是正确的,当检索的数据量较大时,我们可以使用自动化测试来实现。
首先我们需要与数据库进行连接并编写sql语句从数据库中获取我们想要查询的内容,具体步骤可以查看我的另外一篇文章https://blog.csdn.net/weixin_52771544/article/details/139489794,此处不再讲解。然后通过搜索接口执行测试得到响应结果,把得到的结果与数据库的结果进行比较,我采用的是边界值法,判断数据库中检索出来的数据的第一条和最后一条数据是否存在接口测试的响应数据中,还有数量是否一致,具体操作步骤如下:
添加HTTP取样器
在界面中输入你要搜索的内容,打开开发者工具,点击搜索,抓取需要的内容
把抓取到的URL、请求方法、负载数据写到HTTP请求取样器里面,如图:
添加HTTP信息头管理器
把抓取到的Content-Type、Accept-Encoding、Authorization、Accept复制粘贴到刚刚新添加的HTTP信息头管理器中
至此,你可以运行一下,然后在察看结果树查看Text是否有爆红,如果是绿色的,那就说明搜索框接口测试成功,接下来继续判断搜索框接口与数据库查询出来的数据是否一致。
添加JSON断言,这里我要比较的是数据的数量,所以我用JSON断言
在JSON断言中配置你要校验的参数
其中Assert JSON Path exists的值是从结果树中获取的,如图
Expected Value的值是从数据库返回的结果获取的,要获取这个数据,要先在JDBC Request保存这个值的变量,具体如图:
如果你不确定JDBC Request中的Variable names值是否保存成功,可以添加调试后置处理程序,添加后里面的值都不用改
至此,你可以运行一下程序,然后察看结果树是否报错,没有就说明数据库中检索出来的数据数量和搜索接口检索出来的数据数量是一致的,接下来,我们继续判断数据库中检索出来的数据的第一条和最后一条与接口测试的响应数据是否一致。
添加响应断言
配置响应断言,具体如图:
添加断言结果,如果断言错误,会在断言结果中显示
全部工作至此已经完成,运行程序即可进行测试。(图中测试的系统是由本人开发的)