RF 中使用 reuqests 的两种方式
前言
最近遇到一个问题,在服务器上定时构建运行 UI 自动化时,总是遇到在 test case 的 set up 阶段,也就是登录阶段,页面一直加载超时,从 log 只能看出这个截图显示页面一直在加载中,但具体是加载什么超时,也就是哪个接口超时,看不出来, 我就准备在脚本中增加打印请求接口的时间
这里怎么写接口相关的脚本,有两种方式,一种是自己写一个关于请求接口的 python 库,RF 来调用它,这个自己写代码灵活性比较高。 还有一种是直接使用 RF 开源框架支持的第三方库
1. 使用 python requests 库
用 python 进行接口相关操作,会使用 requests 库,关于这个库也有官方文档可供参考https://cn.python-requests.org/zh_CN/latest/user/quickstart.html
安装
pip install requests
使用
它支持 request 请求的 7 个方法: get/post/options/head/put/patch/delete
每个方法的返回都是一个 response 对象
去调用的时候有两种方式
(1)分别调用 requests 中的特定方法
详细参数,可看源码
(2)使用 request 方法
以上详细和使用方法可参考官方文档和源码,今天重点讲在 RF 中怎么使用
举例
比如我在我的 TestLib 库中新建一个 python 文件在里面写入如下代码,获取需求请求接口的时间,然后返回
在 RF 中我这样调用
这个 python 文件如何像库一样,可以被导入,可参考我之前的文章# robot framework--扩展关键字
1. 使用 RF 的第三方库 RequestsLibrary
安装
pip install robotframework-requests
使用
这个库也封装了很多关键字,可参考文档http://marketsquare.github.io/robotframework-requests/doc/RequestsLibrary.html
实例
我发起 get 请求,详细代码如下, 我先引入 RequestsLibrary,然后封装一个用户关键字获取接口加载时间,然后在 testcase 里调用这个用户关键字
版权声明: 本文为 InfoQ 作者【红毛丹】的原创文章。
原文链接:【http://xie.infoq.cn/article/ba1afb72f9f399f96b67fcb1d】。文章转载请联系作者。
评论