一月蔷薇_456 发表于 2018-2-27 14:51:48

robot framework之接口测试(get方式)

最近工作需要进行接口测试,所以学习用robot做接口测试。下面讲一下get方式接口,如下图接口http://img.blog.csdn.net/20170822105736724?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3VpcGFuMTIzNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

可以看到数据有5W多条,我只取了其中两条做下讲解
首先我们需要连接数据库,测试的思想“通过数据库查询结果和接口返回的结果进行比对”
第一步:连接数据库可通过mysql方式连接,或通过odbc方式连接数据库(odbc对中文支持较好)脚本如下
http://img.blog.csdn.net/20170424194837759?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3VpcGFuMTIzNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

注释:1. 连接数据库,我是将连接当做变量了(具体链接方式可查看我的链接数据库博客)2. 获取数据库总条数。因为总条数过多,我SQL里面取了100条好调试4. 查询具体字段结果,查询结果如下图样式[(xxxx,yyyy,zzzz,wwww,mmmm,nnnn),(aaaa,bbbb,cccc,dddd,eeee,ffff),...]
运行结果如下:http://img.blog.csdn.net/20170822110208734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3VpcGFuMTIzNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

说明查询成功了

第二步:获取接口返回
脚本如下
http://img.blog.csdn.net/20170822105840341?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3VpcGFuMTIzNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

运行一次,运行结果如下:
http://img.blog.csdn.net/20170424200914207?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3VpcGFuMTIzNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

注释:9. 连接服务器(${link}是接口url的前半段。类似https://baidu.com这样)10. 发送请求,将结果保存到变量${status_result}中13. 如上图运行结果中的${response_json}样式(其实就是开始的第一张图返回的那样,只是展示方式不同)15. get_dictionary_keys获取字典的键值,保存到变量中(方便调试)17. 获取list中第二层list的Campaigns所有dict (主要比对的就是这里的数据了)19. 获取Campaigns这个list内部字典中的值
至此请求返回结果就发送完成了,Campaigns的dict值都存在了${count_value}中
然后就可以开始用“数据库查询结果” 和 “接口返回结果”进行比对了,需要循环比对,由于代码量太大,这里只介绍一下比对思想1.查询数据库2.发送请求获取接口返回并取出dict值保存在变了中3.将查询结果转为list,循环取出查询结果中的元素
后续代码大概是这个思想: FOR    ${num}    IN RANGE    ${count_row}    #${count_row}使用数据库的条数
    \    ${list_search}    Convert_To_List    ${Search_result[${num}]}    #循环取值并转化为list类型
    \    ${list_response}    Get_Dictionary_Values    ${count_value[${num}]}
    \    ${status_list}    Run_keyword_and_return_status    Lists_Should_Be_Equal    ${list_search}    ${list_response}中间省略了很多字符类型转换,字符串处理,list元素修改......处理方式,对比完成后如果有不相同的list可逐一将每个元素取出进行二次比对,然后用唯一可识别的字段将结果追加到list或者写入文件都可以。。。
以上对比完了Campaigns后,还需要对totalcount和status进行比对

梦想家 发表于 2018-2-28 11:01:48

:handshake
页: [1]
查看完整版本: robot framework之接口测试(get方式)