python接口自动化实现--基于pandas库解析测试用例

本文详细介绍了如何使用Pandas库解析Excel和CSV文件,包括读取文件、loc和iloc方法的应用、zip和dict函数的转换,以及append和extend方法在处理测试用例中的区别。
摘要由CSDN通过智能技术生成

一、pandas库解析测试用例代码详细说明

1.pandas读取文件的方法

读取excel文件:
pandas.read_excel(excel文件路径)

读取csv文件:
pandas.read_csv(csv文件路径)

2.loc和iloc方法说明

loc[行索引,列标题] 和 iloc[行索引] 方法的区别在于中括号【】中所需要的参数不一致,但是获取到的数据结果是一致的

m=df.loc[0,title].values
print(m)
n=df.iloc[0].values
print(n)

 代码运行结果,m和n的打印结果一致:

m的打印结果:['case0001' 'common_api_request' '通用API请求' '关键字搜索' '关键字正常搜素能显示结果'
 '5|9组合搜索横流南路铭兴街' 'yes' 'GET' '/zhs/bs/tips' 'params'
 '{"query":"横流南路铭兴街","ak":"ebf48ecaa1fd436fa3d40c4600aa051f","region":"441900"}'
 'json' '{"result":[{"uid":"123330148"}]}' ]
n的打印结果:['case0001' 'common_api_request' '通用API请求' '关键字搜索' '关键字正常搜素能显示结果'
 '5|9组合搜索横流南路铭兴街' 'yes' 'GET' '/zhs/bs/tips' 'params'
 '{"query":"横流南路铭兴街","ak":"ebf48ecaa1fd436fa3d40c4600aa051f","region":"441900"}'
 'json' '{"result":[{"uid":"123330148"}]}' ]

 3.zip()函数和dict()函数

    zip()函数可以接收多个可迭代对象,然后把每个可迭代对象中的第i个下标元素组合在一起,形成一个新的迭代器,类型为元组
a = ['a','b','c']
b = ['4','5','6']
l= zip(a,b)
print(l)

打印结果,打印的是一个元组类型的迭代器:

<zip object at 0x000001D37710C300> 

迭代器数据提取方法:

next()、list()、for循环 ;dict()

a = ['a','b','c']
b = ['4','5','6']
l= zip(a,b)
for i in l:
    print(i)

 打印结果:

('a', '4')
('b', '5')
('c', '6')

 dict()函数可以传一个zip()函数,将上述元组数据转换成字典

a = ['a','b','c']
b = ['4','5','6']
print(dict(zip(a,b)))

 打印结果:

{'a': '4', 'b': '5', 'c': '6'}

4.append()和extend()方法都是用来添加数据到list末尾的,两者的区别:

        append()添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据;              extend()添加的时候会把添加的数据迭代进行添加,只允许添加可迭代对象数据(可迭代对象: 能用for循环进行迭代的对象就是可迭代对象, 比如:字符串,列表,元祖,字典,集合等等 )

 

二、pandas库解析excel类型的测试用例

1.excel类型测试用例文件示例

caseNoaction_keywordaction_namefunction_modulecase_titlecase_descriptionis_runrequest_methodrequest_urlrequest_type_datarequest_bodyresponse_type_dataexpect_result
case0001common_api_request通用API请求关键字搜索关键字正常搜素能显示结果5|9组合搜索横流南路铭兴街yesGET/zhs/bs/tipsparams{"query":"横流南路铭兴街","ak":"ebf48ecaa1fd436fa3d40c4600aa051f","region":"441900"}json{"result":[{"uid":"123330148"}]}

2. excel类型测试用例文件解析

import pandas as pd
import os,xlrd
#获取excel文件路径
datapath = os.path.split(os.path.abspath(__file__))[0]
excel_path = os.path.join(datapath,"testexcel.xls")
#通过文件路径读取excel文件内容
df = pd.read_excel(excel_path)
#获取excel文件每一列的第一行的名称
title = df.columns.values
#获取excel文件每一行的索引值,从第二行开始计算,索引值从0开始
num = df.index.values
caselists=[]
for i in num :
    caselist=[]
    casevalue = df.loc[i,title].values
    print(casevalue)
    #zip函数将两个列表的数值按照索引一一对应的方式,以元组的方式返回
    #dict函数将列表中的元组转换成字典的格式
    caseinfo = dict(zip(title, casevalue))
    caselist.append(caseinfo)
    caselists.extend(caselist)
    # print(caseinfo)
print(caselists)

3.excel类型测试用例文件解析代码运行结果

[{'caseNo': 'case0001', 'action_keyword': 'common_api_request', 'action_name': '通用API请求', 'function_module': '关键字搜索', 'case_title': '关键字正常搜素能显示结果', 'case_description': '5|9组合搜索横流南路铭兴街', 'is_run': 'yes', 'request_method': 'GET', 'request_url': '/zhs/bs/tips', 'request_type_data': 'params', 'request_body': '{"query":"横流南路铭兴街","ak":"ebf48ecaa1fd436fa3d40c4600aa051f","region":"441900"}', 'response_type_data': 'json', 'expect_result': '{"result":[{"uid":"123330148"}]}', 'verify': nan, 'save': nan}] 

三、pandas库解析csv类型的测试用例

1.csv类型测试用例文件解析

#获取csv文件路径
datapath = os.path.split(os.path.abspath(__file__))[0]
csv_path = os.path.join(datapath,"testcsv.csv")
#通过文件路径读取csv文件内容
df = pd.read_csv(csv_path)
#获取csv文件每一列的第一行的名称
title = df.columns.values
#获取csv文件每一行的索引值,从第二行开始计算,索引值从0开始
num = df.index.values
caselists=[]
for i in num :
    caselist=[]
    casevalue = df.loc[i,title].values
    print(casevalue)
    #zip函数将两个列表的数值按照索引一一对应的方式,以元组的方式返回
    #dict函数将列表中的元组转换成字典的格式
    caseinfo = dict(zip(title, casevalue))
    caselist.append(caseinfo)
    caselists.extend(caselist)
print(caselists)

  • 47
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值