使用Linux grep命令提取关键信息进行统计

背景:接口自动化测试中已维护的接口信息中包含了老APP和新APP的接口,我想统计已维护的新APP接口有多少。

一、提取”系统内所有接口“(即新APP中所有接口)

1. 接口信息放在一个后缀名”.dart“为的DART类型的文件里,接口定义格式如下:

extension AssetsApi on Api {
  static Future<WalletAssets> main() async {
    var response =
        await Api.request(Method.Get, "/v2/assets/main/", auth: ApiAuth.token);
    return WalletAssets.fromJson(response.data);
  }
}

2. 使用Linux的grep命令查找文件里符合条件的字符串

  1)如1中代码所示,符合条件的字符串是”Api.request(“

  2)我要获取到的信息是method和url,那么查询结果显示两行即可

  3)先看一下查询结果,命令:grep 'Api.request(' -R * -A 1

  4)命令简单解析:”-R“代表查找目录而不是文件、”*“代表目录下全部文件、”-A 1“代表显示除了符合条件的字符串所在行,再多显示一行。即一共显示2行

  5)把查询结果放在excel中,命令: grep 'Api.request(' -R * -A 1 >>api.xlsx     

二、提取”已维护接口“

1.  接口信息维护在yaml类型的文件中,基本格式如下:

asset_main:
  description: 【测试】测试数据
  method: get
  url: /v2/assets/main/

2. 使用 xlrd 和 xlutils 把yaml中接口信息取出来放在excel中

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import yaml

import xlrd
from xlutils.copy import copy

if __name__ == '__main__':

    with open("../metadata/api.yml", 'r', encoding="utf-8") as f:
        api_info = yaml.full_load(f)
        print(api_info['email_send_code'], api_info['email_send_code']['url'])

    workbook = xlrd.open_workbook('test_api.xls')
    workbook_xlutils = copy(workbook)
    sheet1_xlutils = workbook_xlutils.get_sheet(0)

    title = ['name', 'description', 'method', 'url']  # 第一行内容,接口信息title

    for i in range(len(title)):  # 把title放在表格第一行
        sheet1_xlutils.write(0, i, title[i])

    k = 0
    for key, value in api_info.items():
        if 'skip_test' in value and value['skip_test']:
            continue
        sheet1_xlutils.write(k+1, 0, key)

        for j in range(len(title)-1):
            sheet1_xlutils.write(k+1, j+1, value[title[j+1]])

        k = k+1

    workbook_xlutils.save('test_api.xls')

3. 取出后的接口信息如下图

三、使用Excel的 VLOOKUP() 函数查询匹配数量

1. 把”已维护接口“信息中url和”系统内所有接口“复制出来到一个表格中

2. 使用 VLOOKUP()函数进行匹配,如下图,在第二个标识下方表格中输入

“=VLOOKUP("*"&C2&"*",A:B,2,0)“,(若参考该公式,请自行查找公式中参数的含义)

3. 其中标识的值为1的说明匹配成功,标识的值为”#N/A“说明匹配失败。筛选出标识的值为1的数量总和,即为匹配成功的数量

4. 提取出url的公式:=MID(A2,FIND(", "&CHAR(34),A2)+3,FIND(CHAR(34)&",",A2)-3-FIND(", "&CHAR(34),A2))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值