Python--读取yml文件,统计参数

先列出所有的yml文件的路径以及.yml的文件

import yaml
import os
import re
file_path_list
= [] def print_all_file_path(init_file_path, keyword): for cur_dir, sub_dir, included_file in os.walk(init_file_path): if included_file: for file in included_file: if re.search(keyword, file): file_path_list.append(cur_dir + "/" + file) #获取指定目录文件下 后缀为.yml子文件的文件路径 file_list = print_all_file_path("存放yml文件的文件夹路径",".yml")

再遍历出所有的数据,提取指定参数并统计

url_list = [] # 用来存储yml用例中的url
for contents_yml in file_path_list: #遍历每个yml用例
    path_yml = "%s"%contents_yml
    f = open(path_yml, 'r', encoding='utf-8').read() #打开.yml文件
    f1 = yaml.safe_load(f) # 转为字典类型
    for i in range(2, len(f1)):
        url = f1[i]["test"]["request"]["url"] #提取其中的一个值
        if url not in url_list: #去除重复的url
            url_list.append(url) #添加到url_list列表中
print(url_list)
print(len(url_list))

 完整案例:

# encoding: utf-8
import yaml
import os
import re

class CountUrl(object):
    def __init__(self):
        self.file_path_list = []  # 用来存储所有的yml文件路径
        self.url_list = []  # 用来存储yml用例中的url

    def print_all_file_path(self,init_file_path, keyword):
        for cur_dir, sub_dir, included_file in os.walk(init_file_path):
            if included_file:
                for file in included_file:
                    if re.search(keyword, file):
                        self.file_path_list.append(cur_dir + "/" + file)

    def count_testcase_url(self):
        for contents_yml in self.file_path_list:  # 遍历每个yml用例
            path_yml = "%s" % contents_yml
            f = open(path_yml, 'r', encoding='utf-8').read()  # 打开.yml文件
            f1 = yaml.safe_load(f)  # 转为字典类型
            for i in range(2, len(f1)):
                url = f1[i]["test"]["request"]["url"]  # 提取其中的一个值
                if url not in self.url_list:  # 去除重复的url
                    self.url_list.append(url)  # 添加到url_list列表中
        return self.url_list

if __name__ == "__main__":
    run =CountUrl()
    # 获取指定目录文件下 后缀为.yml子文件的文件路径
    testcase_file = run.print_all_file_path("存放yml文件的文件夹路径", ".yml")
    print(len(run.count_testcase_url()))

 

posted @ 2021-04-09 13:14  小哈别闹  阅读(443)  评论(0编辑  收藏  举报