【python】测试造数:批量创建接口api参数的数据

目录

1、背景介绍

2、接口api信息

3、批量造数的代码


1、背景介绍

接到一个需要,要测试A接口,但是有一个参数"ProcessList"可以无限制输入,所以需要构造约两百条的数据,测试一下代码的健壮性。但是数据量太多了,手工造数太慢,因此采用脚本的形式造数,几分钟搞定。

2、接口api信息

接口信息已经去掉了敏感信息,跟原接口有出入,但是结构是差不多的。

<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope>
    <soapenv:Header/>
    <soapenv:Body>
        <web:add>
                <Creator>{"LoginName":"test01"}</Creator>
                <Subject>自动生成</Subject>
                <Id></Id>
                <ProcessList>
                    <Id></Id>
                    <AppName></AppName>
                    <Number></Number>
                    <Subject></Subject>
                    <CreateTime></CreateTime>
                    <CreatorName></CreatorName>
                    <CreatorLoginName></CreatorLoginName>
                    <Index></Index>
                </ProcessList>
        </web:add>
    </soapenv:Body>
</soapenv:Envelope>

3、批量造数的代码

当时正在查询数据库,刚好就数据下载下来了,通过读取文件的方式获取数据。这里也可以修改成读数据库获取数据。

# 导入csv模块,用于读取CSV文件  
import csv  
  
# 创建一个空列表,用于存储构造的XML数据  
datas_list = []  
  
# 使用'with'语句打开'data.csv'文件,确保文件在使用后被正确关闭  
with open('data.csv', mode='r') as f:  
    # 创建一个csv.DictReader对象,用于读取CSV文件中的数据,并将其解析为字典形式  
    reader = csv.DictReader(f)  
  
    # 遍历CSV文件中的每一行数据  
    for row in reader:  
        # 从CSV行字典中提取所需的字段值  
        subject = row['SUBJECT']  
        number = row['NUMBER']  
        index = row['INDEX']  
        app_name = row['APP_NAME']  
        create_time = row['CREATE_TIME']  
        data_id = row['ID']  
        loginname = row['LOGIN_NAME']  
        name = row['NAME']  
  
        # 构造一个XML格式的<ProcessList>字符串  
        data = f"""  
        <ProcessList>  
                    <Id>{data_id}</Id>  
                    <AppName>{app_name}</AppName>  
                    <Number>{number}</Number>  
                    <Subject>{subject}</Subject>  
                    <CreateTime>{create_time}</CreateTime>  
                    <CreatorName>{name}</CreatorName>  
                    <CreatorLoginName>{loginname}</CreatorLoginName>  
                    <Index>{index}</Index>  
        </ProcessList>  
        """  
  
        # 将构造的XML数据添加到datas_list列表中  
        datas_list.append(data)  
  
# 使用'with'语句打开'new_data.txt'文件,用于写入构造的XML数据  
with open('new_data.txt', 'w') as f:  
    # 使用writelines方法将datas_list列表中的所有字符串写入文件  
    f.writelines(datas_list)  
  

说明:  
1. 该脚本从'data.csv'文件中读取数据,并为每一条记录构造一个XML格式的<ProcessList>片段。 
2. 构造好的XML数据片段被存储在一个列表中,并最终写入'new_data.txt'文件。  
3.因为代码没有构造完整的SOAP请求体。最后需要将'new_data.txt'文件中的数据copy过去。(这步骤也可以改成用代码构造完整的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值