1.需求场景
需统计出所有调用次数的总和与导出的excel表中数据进行对比,查看数据次数是否一致
说明:excel中一条记录代表一次调用
2.解决思路
# 1.获取接口返回数据
# 2.将数据以json格式写进一个txt文件中,将所有的null替换为1,方便python读取数据
# 3.读取文件,取出所有counter: 字段的值,并累加计算
# 4.打开excel,读取excel最大行数
# 5.比对2个数值,若一致,则此功能用例通过,否,不通过,存在问题
3.代码示例
from openpyxl import load_workbook
def test_behavior1(parame):
# 读取文件
with open(file, encoding='utf-8') as file_obj:
content = file_obj.read() # 返回str 类型
# 需进行类型转换 :str转为dict
dict_content = eval(content) # eval() 函数用来执行一个字符串表达式,并返回表达式的值
sum = 0
data_data = dict_content["data"] # 取出content中的data键值,获取的数据以数组形式返回
print(data_data)
# 循环遍历取出ip字段值
for i in data_data:
# 注意参数
sum = sum + i[parame]
print('总计行为次数=', sum)
return sum
def test_excel3(file_path):
path = 'E:\\mycode\\test_data\\'
oe = load_workbook(path + '/' + file_path)
# 表示当前活跃的表,本案例中 当前活跃表为sheet1
E = oe.active
rows = E.max_row # 读取excel 行数
columns = E.max_column # 读取excel列数
print(rows-1) #因为有表头,需-1
return rows-1
def matching_than():
file_path='E:\\mycode\\test_data\\behavior01.txt'
excel_file = '2020-11-12 14_54_13.xlsx'
m = test_behavior1('counter', file_path)
n = test_excel3(excel_file) # 变量最好以参数形式传递
if m == n:
print("次数一致")
else:
print("次数不一致")
d = matching_than()
4.报错集合
# 报错集合
# NameError: name 'true' is not defined , 手动将返回数据中的所有true替换为1
# ModuleNotFoundError: No module named 'load_workbook' , 未安装此插件,pip install load_workbook 去安装下,然后再点击选择执行解析器的版本
5.运行结果