接口测试比UI测试更有价值,如果项目时间紧张,测试接口更好一些,但每次都频繁的手工填写接口进行测试也浪费时间,下面给大家介绍一下很好的自动化测试框架robot framework,并且做接口自动化测试事半功倍。其返回值验证和与数据库连接进行增删改查很方便,逻辑也很严谨,如果公司没有造轮子推荐这么做。
先介绍一下环境搭建
接口自动化测试一定要导入的类库是Request类库,因为该类库提供了模拟http请求的方法很方便,pip命令进行安装就可以。
这是我写的简单的get请求,
首先通过createSession关键字创建一个连接与我们的服务器进行连接
其次通过get request请求 请求地址
接下来得到响应码判断与200是否相等。调用.status_code内置的方法得到响应码
每个响应体总不一样,我们把响应体转换json格式也是应用内置方法
最后从响应体中拿到success的值判断是否为True,判断我这个接口是否调用成功。
简单的get接口自动化就完成了,后面介绍post接口和get接口需要token等方式
Post请求代码如下:
CreateSession api http://www.baidu.com -》比如,自己的接口地址不方便给出;
${headers}= Create Dictionary accept-language=zh-CN,zh;q=0.8 accept-encoding=gzip, deflate, sdch Cache-Control=max-age=0 user-agent=Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36 Accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type=application/x-www-form-urlencoded
${headers} GetHeaders
${data}= Create Dictionary userid=${userid} pwd=${pwd} sourceType=1
${resp}= Post Request api /xxx/xxx/xx data=${data} headers=${headers}
${jsondata}= to json ${resp.content}
Should Be Equal As Strings ${resp.status_code} 200
Comment log ${jsondata['msg']}
Comment log ${jsondata}
${resp} to json ${resp.content}
Comment log ${resp}
${Token} Get From Dictionary ${resp} token
Set Global Variable ${Token}
RFS自动化,POST Request发送请求,登录成功后,设置Token为全局变量,以便于下个接口使用该Token;