python3+requests+unittest接口自动化实例讲解
前言
这个季度初的时候,我们公司管理层提出了全面提升部门技术水准的要求,而作为项目开发流程中最重要的一环——测试,我们也是有自己的技术追求的,所以为了,由原来的业务功能测试转变成自动化测试。之前大多都是手工进行,利用postman和fiddler进行抓包和截取数据,后来,经过大家的讨论,决定基于python学习,开始搞接口自动化,经过大家的努力,这套自动化框架目前已经基本完成了,于是进行一些总结,便于以后回顾温习,有许多不完善的地方,大家可以留言一起讨论研究,共同进步。
首先,我们可以捋一捋思路,想一想接口测试的流程
其次,选择合适的框架
流程清晰之后,我们需要选择一个合适的框架,于是选择了Python3+requests+unittest框架
Requests模块发送http的网络请求,请求类型主要包含了post,get, PUT,DELETE,HEAD
python+unittest单元测试框架构成,和测试报告生成(HTMLTestRunner)
框架详解不在此赘述,requests可参考
unittest参考
基于以上,我们来一步步搭建我们的框架。在这个过程中,我们需要做到业务和数据的分离,这样才能灵活,达到我们写框架的目的。接下来,我们来进行结构的划分。
我们的结构是这样的
data:存放自动化测试所用到的数据文档
log:存放生成的日志文件
base:存放公共的方法
report:存放生成的自动化测试报告
testcase:存放测试脚本
接下来,公共方法的开发
整体结构有了划分,接下来就该一步步的填充整个框架了,我们先来看看Base文件中的公共类或函数,这主要用于后续测试case的调用,所有公共的、一成不变的数据都可以放在这里,维护也方便**(海量免费学习资料,软件测试交流:1140267353,还会有同行一起技术交流)**
配置文档如下
[DATABASE]
data_address = ./data/
report_address = ./report/
[HTTP]
base_url = http://xxx.xx
想知道怎样从配置文档中得到或写入相应的数据吗?那继续看吧
import os
import configparser
# 获取当前py文件地址
proDir = os.path.split(os.path.realpath(__file__))[0]
# 组合config文件地址
configPath = os.path.join(proDir,"config.ini")
class ReadConfig:
def __init__(self):
#获取当前路径下的配置文件
self.cf = configparser.ConfigParser()
self.cf.read(configPath)
def get_config(self,field,key):
#获取配置文件中的key值
result = self.cf.get(field,key)
return result
def set_config(self,field,key,value):
#向配置文件中写入配置信息
fb