参考资料:https://blog.csdn.net/weixin_46457203/article/details/105738965
本文框架和参考文章一致,但是在自己操作过程中遇到一些问题和优化的地方,所以写篇文章记录下来,如有侵权,请联系删改
Python环境
python版本:3.8
依赖包:requests,unittest,HTMLTestReportCN,ddt;
工具:pycharm 2020.1;
python环境设置参考:https://www.runoob.com/python/python-install.html
安装依赖包:pip install 包名(如果找不到或者网络不好可以使用下面这一段下载)
pip install 包 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pycharm可以在file>settings>Python Interpreter里面点加号增加,也会有下载失败的情况,目前还没找到原因,推荐使用豆瓣的下载。
HTMLTestReportCN:https://blog.csdn.net/lssrain/article/details/80109214
框架设计
base
创建Pythonpackage类型的base包,用于存储基类,各种请求方法,这里的封装方式比较直接明了,根据传入参数调用对应的请求方式,相信使用过requests的都比较容易理解。
import requests
import json
class Base():
def method_post(self,url,params =None,data = None,headers = None,files = None):
return requests.post(url = url,params = params, data = data,headers = headers,files =files)
def method_get(self,url,params = None,data = None,headers = None,files = None ):
return requests.get(url = url,params = params,data = data,headers = headers,files = files)
def method_put(self,url,params = None,data = None, headers = None,files = None):
return requests.put(url = url,params = params,data = data,headers = headers,files = files)
def method_delete(self,url,params = None,data = None,headers = None,files = None):
return requests.delete(url = url, params = params,data = data,headers = headers,files =files)
def requests_type(self,method,url,params = None,data = None,headers = None,files = None):
if method == 'post' or method == 'POST':
return self.method_post(url = url,params = params,data = data,headers = headers,files = files )
elif method == 'get' or method == 'GET':
return self.method_get(url = url,params = params,data = data,headers = headers,files =files)
elif method == 'put' or method == 'PUT':
return self.method_put(url = url,params = params,data = data,headers = headers,files = files)
elif method == 'delete' or method == 'DELETE':
return self.method_delete(url = url,params = params,data = data,headers = headers,files = files)
else: return print("不支持该方法!!")
common
同样创建Pythonpackage类型的common包,用于存放各种共用方法。
目前这里存放的有创建对应文件下年月日文件夹,封装日志,读取excel,读取json文件,生成测试报告以及发送邮件等方法
基础文件路径(需要提前在目录中创建好):
base_pa = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
base_path = base_pa.replace('\\','/') # 生成的路径用的是'\',后面读取文件的时候会找不到,所以换成'/'
log_path = base_path + '/' + 'report' + '/' + 'logs' # 日志路径
report_html = base_path + '/' + 'report' + '/' + 'html' # 报告路径
read_xlrd = base_path + '/' + 'data' #用例路径
创建Commom类,封装各种方法。