python unittest接口测试脚本_Python Unittest接口自动化测试框架搭建记录

Unittest框架的基本结构如图:

代码设计思路重点讲解:

1、通过读取Excel文档中的内容,来实现参数的存储。通过配置文件,可以方便修改对应的内容。

2、把接口的参数存在Excel中,通过json.loads将参数变为json格式,其余公共参数可通过values.update()来加入。

3、对于我们常用的token参数,通过传入uid,在通过数据库查询,进行替换参数。

4、对于返回值的校验,通过写在Excel对应行的结果上,因为主要用来回归下接口是否正常访问,故代码只做了code校验

然这样设计之后,我们可以通Excel添加对应接口,参数和结果,如图:

而测试结果如图显示:

遇到问题记录如下:

问题:ImportError: No module named flask 解决办法:

1、Python3可以在命令提示符中输入:pip3 install flask

2、Python2直接输入:pip install flask

问题:ImportError: No module named 'xlrd' 解决办法:

1、Python3可以在命令提示符中输入:pip3 install xlrd

2、Python2直接输入:pip install xlrd

问题:ImportError: No module named requests 解决办法:

1、Python3可以在命令提示符中输入:pip3 install requests

2、Python2直接输入:pip install requests

问题:common中的xx.py调用文件夹外面的xx.py文件,解决方法:

import sys

sys.path.append('..')

--------------这段代码放在import xx.py之前--------------

问题:在打印log的时候会提示错误:UnicodeDecodeError:

'ascii' codec can't decode byte 0xe2 in position 30,解决方法:

import sys

reload(sys)

sys.setdefaultencoding('utf8')

--------------这段代码放在logging的头部--------------

问题:在执行脚本的时候提示错误:'testUserLogin' object has

no attribute 'case_name':

原因是在 HTMLTestRunner.HTMLTestRunner中运行时description = cls_results[0][1]中多了.case_name,只要删掉就好了

问题:在执行脚本的时候提示错误:TypeError: unicode argument

expected, got 'str':

解决方法:HTMLTestRunner中将对应的2.7版本改成from io import BytesIO,然后把下方的self.outputBuffer = io.BytesIO()

问题:在执行脚本的时候提示错误:ImportError: No modulenamed parse

python 2.7版本需要用urlparse代替parse。故脚本修改如下

data1 = dict(urlparse.parse_qs(urlparse.urlparse(new_url).query))

问题:在执行脚本的时候提示错误:ImportError: No modulenamed paramunittest

1、Python3可以在命令提示符中输入:pip3 install paramunittest

2、Python2直接输入:pip install paramunittest

在45机子上jenkins配置对应的执行内容

一、45机子上需要配置tomcat服务

二、安装工程所用到的对应python插件

三、上传对应的工程,并且在jenkins中配置对应工程

四、找到tomcat中/conf/server.xml文档,在最好一行插入对应访问地址的对应路径配置。如:

则页面访问路径如:(用于查看对应接口报告)

五、启动tomcat,使链接可以访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值