51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1538|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-27 14:51:48 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

最近工作需要进行接口测试,所以学习用robot做接口测试。

下面讲一下get方式接口,如下图接口



可以看到数据有5W多条,我只取了其中两条做下讲解


首先我们需要连接数据库,测试的思想“通过数据库查询结果和接口返回的结果进行比对”


第一步:连接数据库

可通过mysql方式连接,或通过odbc方式连接数据库(odbc对中文支持较好)

脚本如下




注释:

1. 连接数据库,我是将连接当做变量了(具体链接方式可查看我的链接数据库博客)

2. 获取数据库总条数。因为总条数过多,我SQL里面取了100条好调试

4. 查询具体字段结果,查询结果如下图样式

[(xxxx,yyyy,zzzz,wwww,mmmm,nnnn),(aaaa,bbbb,cccc,dddd,eeee,ffff),...]


运行结果如下:



说明查询成功了


第二步:获取接口返回

脚本如下




运行一次,运行结果如下:




注释:

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,循环取出查询结果中的元素


后续代码大概是这个思想

  1. : FOR    ${num}    IN RANGE    ${count_row}    #${count_row}使用数据库的条数  
  2.     \    ${list_search}    Convert_To_List    ${Search_result[${num}]}    #循环取值并转化为list类型  
  3.     \    ${list_response}    Get_Dictionary_Values    ${count_value[${num}]}  
  4.     \    ${status_list}    Run_keyword_and_return_status    Lists_Should_Be_Equal    ${list_search}    ${list_response}  
复制代码

中间省略了很多字符类型转换,字符串处理,list元素修改......处理方式,对比完成后如果

有不相同的list可逐一将每个元素取出进行二次比对,

然后用唯一可识别的字段将结果追加到list或者写入文件都可以。。。


以上对比完了Campaigns后,还需要对totalcount和status进行比对


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 21:54 , Processed in 0.069218 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表