一、自动化测试和自动化测试框架的区别
在讲RobotFramework+Python+HTTP接口自动化之前先普及下当下流行的自动化测试都有哪些,方便大家对自动化测试有一个简单的了解。
我们都知道测试金字塔结构,我们就按照金字塔结构来对自动化测试做一个切入点。
先来看看每一层对应的自动化测试工具有哪些:(笔者总结的自动化测试工具是项目中常用的,包括但不限于此)供大家参考。
自动化测试是把以人为驱动的测试行为借助于工具执行的一种过程,一般一种工具就能独自完成一种测试目的。区别于我们要搭建的自动化测试框架,所谓自动化测试框架我的理解是将测试用例、代码脚本、测试执行、测试结果各个环节形成一种闭环,来完成的一系列自动化测试管理的工作。
二、常见的自动化测试框架包括:(以笔者尝试过的三种自动化测试框架为例,后面两种还没有来得及尝试,后面尝试后再更新)
1、JMeter+Ant+Jenkins(接口自动化测试、性能测试)
2、Unittest+Python+GitLab+Jenkins(接口自动化测试)
3、RobotFramework+Python+HTTP+GitLab+Jenkins+Job(接口自动化测试)
4、RobotFramework+Python+Selenium(Web UI自动化测试)
5、RobotFramework+Python+Appium(移动端自动化测试)
由此可见RobotFramework框架是通用型测试框架,本身不具备任何测试能力,如果需要让它具备某项能力,就需要借助第三方库。
三、进入正题,基于HTTP接口的自动化测试框架的搭建RobotFramework+Python+HTTP
前面我写过Mac环境搭建Robot Framework+Python自动化测试框架(这是基础):https://www.jianshu.com/writer#/notebooks/39150130/notes/65818715,所以这里我直接将如何搭建HTTP接口自动化测试框架。
HTTP接口测试所需要安装的第三方依赖库包括:
1、Requests:robotframework-requests需要依赖这个HTTP请求库;
2、RequestsLibrary:封装HTTP关键字时需要用到此库,主要用来实现底层模拟发送发送GET、POST请求;
3、HttpLibrary.HTTP:使用该库的Json关键字,对JSON结构体进行操作会很方便,主要用来处理HTTP返回数据,如库中有Get Json Value关键字,可以从JSON结构体中逐层取数据值。
1.1、安装Requests依赖库
1)终端命令行输入:pip install requests
2) 升级requests库版本:pip install --upgrade requests
3) 安装requests库指定版本,如安装版本号:2.22.0:pip install request==2.22.0
4)如果已经安装过,不记得安装的是哪个版本可用命令查看:pip list
2.1、安装RequestsLibrary依赖库
1)终端命令行输入:pip install robotframework-requests
2) 升级robotframework-requests库版本:pip install --upgrade robotframework-requests
3) 安装robotframework-requests库指定版本,如安装版本号:0.6.5:pip install request==0.6.5
4)同样,如果已经安装过,不记得安装的是哪个版本可用命令查看:pip list
3.1、安装HttpLibrary.HTTP依赖库
1)终端命令行输入:pip install robotframework-httplibrary
2) 升级robotframework-httplibrary库版本:pip install --upgrade robotframework-httplibrary
3) 安装robotframework-httplibrary库指定版本,如安装版本号:0.4.2:pip install request==0.4.2
4)同样,如果已经安装过,不记得安装的是哪个版本可用命令查看:pip list
这些下载好的三方库在后续接口测试过程中,是需要我们手工导入这些三方依赖库来进行测试的。
以上是开展HTTP接口测试所需要的基础三方库,可根据实际项目要求,自行补充安装其他所需要的依赖库,如在实际项接口测试中需要对数据库进行操作校验,可自行安装Pymysql依赖库和DatabaseLibrary依赖库。