Robot Framework之---接口测试实战
来源:互联网 发布:淘宝名字大全霸气的 编辑:程序博客网 时间:2024/05/31 19:02
RF框架介绍
Robot Framework
下面介绍一下
易于使用,采用表格式语法,统一测试用例格式;
可以使用关键字驱动(keyword-driven)、数据驱动(data-driven)和行为驱动开发
重用性好,可以利用现有关键字来组合新关键字;
结果报告和日志采用
平台和应用无关联性;
模块结构支持使用不同的接口来测试你的应用;
易于扩展,提供了简单
易于集成,提供了命令行接口和基于
功能全面,支持WEB测试(Selenium)、Java GUI
RemoteLibrary
提供tag标签来分类和选择你的案例执行;
内置支持变量variables,支持不同的环境进行测试;
根据我的理解,整理了一个比较形象的Robotframework框架图,如图:
Robotframework作为框架平台,上面可以加载各种Library,通过测试套件、资源文件集成起来,然后可以针对被测系统进行不同角度的测试,图中只列了三种Library,实际上还有很多种不同方向的Library,这里只是方便大家理解。
Requests接口自动化测试介绍
主要介绍几种常见的接口如何进行自动化测试,重点是get request和post request。
这部分测试案例可以在这里找到:https://github.com/qitaos/rf-demos/tree/master/RequestsDemo
1.接口测试
接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务,我之前接触的大部分都是RESTful,还有一些webservice的接口。现在大家也越来越多的关注接口测试了,因为有时候可能界面上的功能还没有实现,我们可以先一步对接口进行验证,提早发现一些和预期不一致的错误。这方面的工具应该也有一些,基于RF的接口测试库我们首推requests和requestsLibrary。
2.requestsLibrary、requests安装
3. requestsLibrary关键字
requestsLibrary的关键字不多,我常用的就几个。
Create Session:
Create Ntlm Session:
Get Request:
Post Request:
Head Request:
TO Json:
3.4
这里的demo我们是用到了flask的网站,做了几种例子,大家了解一下,如果需要更完整的了解,建议看一下RequestsLibrary在github上的测试案例。
3.4.0
我用了flask来实现了一个demo网站,它可以快速建立起一个网站,只用一些简单的语句。
如果使用pip安装会比较方便,特别是在mac电脑上,为了保证例子能正常运行,大家需要安装四个东东,flask、flask-httpauth、flask_restful、python-simplexml。
只需要运行如下命令:
mac
sudo pip install flask
sudo pip install flask-httpauth
sudo pip install flask_restful
sudo pip installpython-simplexml
windows
pip install flask
pip install flask-httpauth
pip install flask_restful
pip install python-simplexml
安装完成之后就可以运行我们的demo-website了,我的书里全部的demo的地址是:
https://github.com/qitaos/rf-demos
具体说明可以看网站上的README,所有的demo都会放到这里,同时书籍出版后也会继续更新,所以你看到github上rf-demos的内容可能会比书上的多。
demo-website的地址是:https://github.com/qitaos/rf-demos/tree/master/demo-website
下载整个工程之后,进入demo-website目录,
运行命令
python flaskdemo.py
运行成功后会有提示信息
python flaskdemo.py
- Running onhttp://127.0.0.1:8000/ (Press CTRL+C to quit)
- Restarting with stat
这里提示我们服务器已经启动,访问http://127.0.0.1:8000/或者 http://localhost:8000/ 就可以打开页面了。
如果有任何出错信息,有可能是前面的测试库没有安装完整。
1、get request json
访问http://localhost:8000/users/1
{“1”: “john”}
如果把1换成5,它会返回一个404的json:
{
“message”: “NotFound: http://localhost:8000/users/5“,
“status”: 404
}
所以这里第一个案例就是来测试这2个接口请求。
首先要先Create Session创建一个连接到服务器的host,然后通过Get Request发起请求,请求的返回是个Request对象${addr},所以在这里的变量是个对象,而对象的属性值的有${addr.status_code}和${addr.content},使用了To Json后,就把返回的content格式化成Json串,然后就可以用Dictionary的方法获取其中的值了。脚本见表格
2、getrequest xml
前面一个例子是接口返回json进行处理的,这个例子是接口返回xml格式内容。访问http://localhost:8000/hello/qitao,会返回一个xml格式的内容:
qitao
案例比较长,分两个部分说,第一个部分其实还是用json来处理,虽然返回的是xml,但是requestslibrary自动把它处理成json了。所以它的这部分处理其实和前面的案例一样。脚本见表格
那么想要返回xml怎么处理呢?这里就要在Request的essay-header里加上一个accept=application/xml,此时返回的就是一个xml格式的内容qitao
所以这里用到了XML库的关键字Get Element Text来获取xml节点的文本,使用Get Element获取到一个Element对象${hello},既然是对象,那么它也有属性值${hello.text}。再后面的几行就是用XML库的关键字新增Element,然后取值,这也算是提前准备好来XML的demo了。
这里为什么要做xml的例子呢,其实是因为有一种接口测试就是测试Web Service的,通常Web Service都是返回一个xml格式的内容。这里demo网站没有做Web Service的例子,所以就用这个xml的例子来代替Web Service了。脚本见表格
运行案例结果如图:
3、增加登录态
有些接口是需要用户密码登录后才能访问的,如果直接访问http://localhost:8000/401
会提示要输入用户名密码
输入正确的用户名密码ok/python,会得到一个返回的信息
{
“pass”:”Authorized access”
}
但是我们做自动化脚本的时候不能去手动输入的,所以我们可以在Create Session的时候加上用户名密码,就可以直接访问了。
用户名ok,密码python,我们用${auth}创建个List存起来,然后在Create Session时加上${auth}参数,后面的过程就是前面一样了,不需要自己再手动输入用户密码了。脚本见表格
运行结果如图
4、postrequest
前面几个都是get方式的,这个例子是post方式的。
这里主要是在essay-header加了一项Content-Type=application/x-www-form-urlencoded,这是最常见的post提交数据的方式,另外还有几种我不太常用的,大家可以根据自己的实际情况来使用。
然后我们向
- Robot Framework之---接口测试实战
- robot framework 接口自动化测试
- robot framework之接口测试(get方式)
- robot framework使用接口框架进行接口测试之图片上传接口
- robot framework接口自动化测试post请求
- Robot Framework自动化测试框架之我见
- Robot FrameWork自动测试之入门范例
- robot framework接口测试之二-四种常见的POST提交数据方式
- robot framework使用接口框架进行接口测试
- robot framework使用接口框架进行接口测试
- Robot Framework自动化测试基础实战课程 1
- Robot Framework自动化测试基础实战课程 2
- Robot Framework自动化测试基础实战课程 3
- Robot Framework自动化测试基础实战课程 4
- Robot Framework 测试总结
- Robot Framework自动化测试
- robot framework 测试安装
- Robot Framework自动化测试
- 欢迎使用CSDN-markdown编辑器
- 财务系统-权限
- Hdu A+B for Input-Output Practice (V)
- 存储过程
- 一般树与二叉树的相互转换
- Robot Framework之---接口测试实战
- 在spring boot中的log4j2编程式配置(Programmatic Configuration)注意事项
- html将标题栏固定
- Http协议基础之为 Cookie 服务的首部字段
- gdb and C memory layout
- tolua学习笔记之一
- CCDEBUG 软件修复终极教程教程
- vmware虚拟机三种网络模式详解
- 打印二叉树的两个题目