前言
忘记从哪篇文章得到的框架了,后面还可以按需优化,整体还行吧,目前比较简单,不过也可以在项目中使用,下面记录下
框架
测试数据
xls格式的文件,jinrongcase.xls
整体形式
python+request+excel/html_report+sendmail,
代码结构
先看下结构(其实这里可以把7拿出来,建立一个testcase文件夹,将测试用例独立出来,再搞一个run文件夹专门放启动代码的脚本):
说明下:他的测试结果有两种呈现方式,一个是 在原测试用例excel中写入实际测试结果的excel文件:
还有一个就是html的一个report:
如果在项目中使用,个人建议后期把他的html的report优化下,改成用HTMLTestRunner(网上有,搜一下)这个文件输出的报告,会好看一点,比如下面这个(后期有时间或者有机会我会优化好提供出来):
详细介绍
自动化测试的思路:
处理数据→请求数据→断言结果→输出报告→邮件通知
1. 数据预处理
处理数据,这个地方使用的是python的 wlrd库,读写excel文件
excelutils.py→excel用例读取,获取用例条数,用例内容,另外额外提供了一个写入excel的方法,为后期将测试结果写回到excel做准备,
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : zhh
# @Tel : 1871253****
# @Time : 2020/3/25 22:05
# @File : demo.py
import xlrd
from xlutils.copy import copy
'''
本部分是读取excel里面的测试用例。获取其中的内容
'''
class ExcelUtils:
# 初始化的函数
def __init__(self, excel_file="../dataconfig/jinrongcase.xls",table_index=0):
#打开工作簿
workbook = xlrd.open_workbook(excel_file)
# 获取对应的表
self.table = workbook.sheets()[table_index]
self.excel_file = excel_file
self.workbook = workbook
# 能够获取当前多少个测试用例
def getCaseCount(self):
return self.table.nrows # 表格的行数
# 获取单元格内容
def getExcelData(self, row, col):
return self.table.cell_value(row, col)
# 写入单元格内容
def writeExcelData(self, row, col, value):
#先重新打开工作簿
read_data = xlrd.open_workbook(self.excel_file)
#copy复制保留
write_data = copy(read_data)
#获取第一个工作表
sheet_data = write_data.get_sheet(0)
#写入内容
sheet_data.write(row, col, value)
#保存
write_data.save(self.excel_file)
# if __name__ == '__main__':
# excelUtils = ExcelUtils()
# print(excelUtils.getCaseCount())
# print(excelUtils.getExcelData(0, 5))
# excelUtils.writeExcelData(3, 12, "我我我")