python+unittest框架实现接口自动化

准备工作

1.pycharm中,file>settling>project,下载相关第三方包,例如unittest、HTMLTestRunner等

 

2.创建项目,新建case、common、config、logs等package包,其中

case--存放测试用例的

common --存放一些共通的方法&公共函数

config--存放配置文件

logs--存放打印的日志

report--存放html测试报告

testfile--存放测试数据(excel参数文件)

runtest.mail.py--测试执行文件,用来执行测试用例、生成报告、发送邮件的

 

获取登录token

创建一个login.py文件,将获取token的方法写入,然后返回token值,便于主脚本调用,

测试用例脚本中,导入login文件,然后引用(将入参从excel中获取,然后调用login文件中的login_post方法

 

from common import login

 

编写用例

使用unittest框架,编写时主要用到request函数进行接口请求,用例放在case包下,部分代码如下:

 

引用excel文件内容参数化

我使用的是xlrd读取的方式,将在excel中预置的测试入参数据读取出来(也可以使用openpyxl函数操作)

代码参考上图,下图为引用的excel文件部分内容。

 

执行用例

使用discover函数获取test前缀的.py测试用例文件,然后用unittest框架下的HTMLTestReport.run函数执行加载的测试用例,部分代码截图如下。

 

打印日志功能

1.打印日志功能,是为了在执行用例发生异常或者成功后,输出执行结果,方便定位,在rtest_case用例脚本的中加入try...except异常捕获机制,将日志输出功能放到里面

from logs.log import logger(要先将定义好的log文件导入进来,然后引用),下图是引入的log文件中的具体方法,引用的时候,直接logger.对应的级别(比如logger.error('自定义的error日志,报错'))。

 

执行用例后,查看mylog文件,会有日志更新,见下图

 

生成测试报告

测试报告使用的是HTMLTestReportCN函数(原始函数是HTMLTestReport,我在网上找的测试报告格式优化后的脚本),代码实现如下:

#定义报告存放路径
filename = test_report + "\\" + now + 'result.html'
fp = open(filename,'w+',encoding='utf-8')

runner = HTMLTestReportCN.HTMLTestReportCN(stream = fp,title = "XX转测版本接口自动化测试报告,单个用例执行详情请参考附件",description = "测试用例执行情况:")

执行用例后,到指定路径下查看,会有一个html格式的报告文件,优化后的内容如下展示:

 

发送邮件

使用smtp函数进行发送邮件功能的实现,MIMEMultipart函数实现发送附件的功能,部分代码实现如下(将邮件的服务器地址、收件人、发件人具体数据都放到cfg.ini配置文件中,然后创建一个readConfig.py文件,用os模块调用配置数据,使用的时候,主程序导入redconfig文件,然后调用):

 

 

jenkins持续集成,定时跑测试用例

1.安装jenkins,Jenkins download and deployment,选择war包下载到本地

 

2.对应路径下,在本地运行cmd,输入命令java -jar jenkins.war,执行后,出现以下信息,证明安装成功

 

3.然后访问http://localhost:8080/地址,然后创建项目。

 

4.构造定时任务,图上的定时任务设置的是每隔5分钟执行一次

 

5.构建执行命令,用来执行run脚本,然后点击保存

 

6.返回列表,列表中展示这种效果,证明执行成功了

 

7.若执行失败,也可以点击项目链接,进去后,查看执行日志,点击日志详情后,会有执行过程中的报错信息,便于定位报错。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值