python接口自动化测试 - configparser配置文件解析器详细使用

简介: python接口自动化测试 - configparser配置文件解析器详细使用

configparser简介


  • ConfigParser模块已在Python 3中重命名为configparser
  • 该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构

 

ini文件相关知识


  • 键值对可用 = 或者 : 进行分隔
  • section 的名字是区分大小写的,而 option 的名字是不区分大小写的
  • 键值对中头部和尾部的空白符会被去掉
  • 值可以为多行
  • 配置文件可以包含注释,注释以 # 或者 ; 为前缀


[server]    
age = 45
username = yes
# server就是section
# age、username就是option


操作ini文件


认准三部曲

  1. 实例化ConfigParser类
  2. 读取配置文件
  3. 操作配置文件

 

基础代码

ini文件示例

1     import configparser
 2 
 3     filename = 'F:/Interface/config/server.ini'
 4     # 实例化configparser
 5     config = configparser.ConfigParser()
 6 
 7     # 读取配置文件
 8     config.read(filename, encoding="utf-8-sig")
 9 
10     # 获取某个option的值(最常见的操作)
11     config.get(section="server", option="username")


包含知识点

  • 当你配置文件有中文时,在调用 read() 方法时,需要传 encoding="utf-8-sig" 参数
  • 最常见的操作就是 get(section,option,fallback="默认值") ,获取某个option的值,当然也可以传个 fallback ,当你的option不存在的时候,就会返回fallback的值

 

configparser封装类


为了更好的复用configparser,我们将常用的方法写成一个封装类

1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 
 4 """
 5 __title__  = 操作配置文件工具类
 6 """
 7 
 8 import configparser
 9 
10 
11 class ConfigUtil:
12     # 实例化configparser
13     config = configparser.ConfigParser()
14 
15     def read(self, filename):
16         """
17         读取配置文件
18         :param filename: 配置文件路径
19         """
20         self.config.read(filename, encoding="utf-8-sig")
21 
22     def get(self, _options, _section='server'):
23         """
24         获取某个options值
25         :param _options: option
26         :param _section: section
27         """
28         try:
29             # 方式一:调用方法
30             value = self.config.get(section=_section, option=_options, fallback="默认值,key不存在则返回此值")
31 
32             # 方式二:索引
33             value = self.config[_section][_options]
34         except Exception as e:
35             print("没有获取到值")
36             value = None
37         return value
38 
39     def get_options_key_value(self, _section):
40         """
41         以列表(name,value)的形式返回section中的每个值
42         :param _section: 某个section
43         :return: list[tuple(key,value)]
44         """
45         return self.config.items(_section)
46 
47     def get_all_section(self):
48         """
49         获取所有section
50         """
51         return self.config.sections()
52 
53     def get_options_by_section(self, _section):
54         """
55         获取section下所有可用options
56         """
57         # 方式一
58         keys = []
59         for _options in self.config[_section]:
60             keys.append(_options)
61 
62         # 方式二(推荐)
63         keys = self.config.options(_section)
64         return keys
65 
66     def assert_section_in_config(self, _section):
67         """
68         判断section是否存在
69         :param _section: 需要判断的section
70         """
71         return _section in self.config
72 
73     def assert_options_in_section(self, _section, _options):
74         """
75         判断options是否存在某个section中
76         :param _section: 某个section
77         :param _options: 需要判断的options的key值
78         """
79         return _options in self.config[_section]
80 
81 
82 configUtil = ConfigUtil()
83 
84 if __name__ == '__main__':
85     filename = 'F:/imocInterface/config/server.ini'
86     configUtil.read(filename)
87     print(configUtil.get("username"))
88     print(configUtil.get_all_section())
89     print(configUtil.assert_section_in_config("server"))
90     print(configUtil.get_options_by_section("server"))
91     print(configUtil.assert_options_in_section("server", "usernsame"))
92     print(configUtil.get_options_key_value("server"))
目录
打赏
0
0
0
0
44
分享
相关文章
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
37 20
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
83 15
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
57 3
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
107 11
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
123 5
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等