python接口自动化:(一)python对ini、yaml文件的操作

一 ini文件

一、ini文件

​ .ini 文件是Initialization File的缩写,即初始化文件.用于存储项目全局配置变量,比如:接口地址 项目地址…输出文件路径.

二、ini文件编写格式

INI文件由节、键、值组成.

注释需前面加;

节
[section]
参数
(键=值)
name=value
;demo
[path]
log_path = D:\pycharm\study
report_path = D:\pycharm\

[database]
username = yxd
passwd = 123456

[userinfo2]
username = nemo
passwd = 123456

注意:节点不可以重复

三、Python对ini文件读取

使用configparser

import configparser

config=configparser.ConfigParser()   
config.read("config.ini",encoding="utf-8")

#获取ini文件中所有的节点
sections = config.sections()

#获取ini文件中某个节点所有选项
options = config.options(section="database")

#获取某个节点下某个选项的选项值
value = config.get(section="database",option="username")

#获取某个节点下的所有选项及选项值,
values = config.items(section="database")

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zRVt58as-1668742353646)(C:\Users\yxd\AppData\Roaming\Typora\typora-user-images\image-20221117103136169.png)]

四、ini文件的编辑(写入或者修改)

ini文件编辑:

1、写入一个节点

2、写入选项及选项值

3、删除节点

4、删除选项及选项值

import configparser

config=configparser.ConfigParser()
file=open('config.ini',"a+")

#写入一个节点
new_section="userinfo1"
if new_section not in config.sections():
    config.add_section("userinfo1")
#     config.write(file)
#     file.close()

# 给某个节点添加选项及选项值
config.set(section="userinfo1",option="username",value="nemo")
config.set(section="userinfo1",option="passwd",value="123456")
config.write(file)
file.close()

#with open("config.ini","w+") as file:
#config.write(file)
import configparser

config=configparser.ConfigParser()
config.read("config.ini",encoding="utf‐8")

#获取ini文件中所有的节点
sections = config.sections()

#删除节点
'''
del_section="userinfo1"
if del_section in sections:
    config.remove_section(section=del_section)
    with open("config.ini", "w+") as file:
        config.write(file)
'''
# 删除选项及选项值
config.remove_option(section="userinfo2",option="passwd")
with open("config.ini", "w+") as file:
    config.write(file)

二 yaml文件处理

一、什么yaml文件

YAML 是一种灵活的数据格式,支持注释、换行符、多行字符串、裸字符等在自动化过程中,我们很多地方都需要使用配置文件来储存数据比如测试环 境,数据库信息、账号信息、日志格式、日志报告名称等。

其中,yaml文件是最常用的配置文件类型之一,相比较ini,conf配置文件来说,它更加简洁,操作更加简单,同时还可以存放不同类型的数据。后缀名:.yaml .yml

二、yaml支持哪些数据类型

对象、

数组、

纯量: 字符串 数值 bool

三、YAML编写格式

大小写敏感

使用缩进表示层级关系

缩进用空格,相同的层级元素左对齐即可

#表示注释

注意:
1.字串不一定要用双引号标识;
2.在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
3.允许在文件中加入选择性的空行,以增加可读性;
4.在一个档案中,可同时包含多个文件,并用“——”分隔;
5.选择性的符号“...”可以用来表示档案结尾(在利用串流的通讯中,这非常有用,可以在不关闭串流的情况下,发送结束讯号)

1 字典格式(:号加空格)

username: cn
passwd: 123456

{‘username’: ‘cn’, ‘passwd’: 123456}

2列表格式(- 空格)

- 1
- 2
- 3
- 4

[1, 2, 3, 4]

3 数据组合

- sucesslogin:
    username: yxd
    passwd: 123456
- errorlogin:
  - username: yxd
    passwd: 123456
  - username: dxy
    passwd: 654321

[{‘sucesslogin’: {‘username’: ‘yxd’, ‘passwd’: 123456}}, {‘errorlogin’: [{‘username’: ‘yxd’, ‘passwd’: 123456}, {‘username’: ‘dxy’, ‘passwd’: 654321}]}]

四、yaml文件的读取

反序列化:从文件转换为Python对象

使用第三方库 PyYAML

import yaml
with open("yaml_demo.yaml","r",encoding="utf-8") as file:
    data = yaml.load(stream=file,Loader=yaml.FullLoader)
print(data)

在这里插入图片描述
在这里插入图片描述

yaml文件用例读取的封装

#获取项目路径
import os
import yaml

def get_object_path():
    return os.getcwd().split("yaml_util.py")[0]

#读取modules.yaml文件
def read_extract_file(node_name1,node_name2):
    with open(get_object_path()+"\modules.yaml",encoding='utf-8') as f:
        value=yaml.load(stream=f,Loader=yaml.FullLoader)
        return value[node_name1], value[node_name1][node_name2]

if __name__ == '__main__':
    print(
        get_object_path(),
        read_extract_file("base","base_gzh_url")
          )

在这里插入图片描述

五、yaml写入数据

序列化(持久化)

将 纯量、对象、数组(Python对象) 转换 yaml文件

modules=["yxd","pytest","unittest","requests","requests"]
with open("modules.yaml","w+") as file:
    yaml.dump(data=modules,stream=file,allow_unicode=True,encoding="utf‐8")

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python接口自动化中,数据存放通常有以下几种方式: 1. 直接在测试代码中定义变量:这种方式比较简单,直接在测试代码中定义变量,比如用户名、密码等敏感信息,然后在测试代码中直接使用。这种方式的优点是简单直接,缺点是当测试数据量较大时,会使代码变得冗长,不易维护。 2. 使用配置文件:可以使用配置文件来存放测试数据,比如iniyaml、json等格式的文件。在测试代码中读取配置文件中的数据,然后使用。这种方式的优点是可以将测试数据和测试代码分离,便于维护和管理,缺点是需要额外处理配置文件。 3. 使用数据库:可以将测试数据存放在数据库中,然后在测试代码中通过数据库连接来读取数据。这种方式的优点是可以实现测试数据共享,便于管理和维护,缺点是需要额外处理数据库连接和数据读取。 4. 使用接口测试工具:可以使用一些接口测试工具,如Postman、SoapUI等来管理接口测试数据。这些工具可以方便地创建和管理测试用例,同时还可以提供测试数据的管理功能,便于测试数据的维护和管理。 选择何种方式存放数据,应根据具体情况而定。如果测试数据较少,可以直接在测试代码中定义变量;如果测试数据较多,可以使用配置文件或数据库;如果需要实现测试数据共享,可以考虑使用接口测试工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值