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

configparser简介

ConfigParser模块已在Python 3中重命名为configparser

该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构

ini文件相关知识

键值对可用 = 或者 : 进行分隔

section 的名字是区分大小写的,而 option 的名字是不区分大小写的

键值对中头部和尾部的空白符会被去掉

值可以为多行

配置文件可以包含注释,注释以 # 或者 ; 为前缀

ini文件示例

[server]

age = 45

username = yes

# server就是section

# age、username就是option

操作ini文件

认准三部曲

实例化ConfigParser类

读取配置文件

操作配置文件

基础代码

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"))

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[python接口自动化测试 - configparser配置文件解析器详细使用]http://www.zyiz.net/tech/detail-102831.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java jdom 设置第1行_Java通过jdom操作生成XML文件的实例代码下载

工作需要,要生成xml文件,所以做了个小demo分享一下。看代码吧~ main()里面没什么好说的 该写的都写了public static void main(String[] args) {//调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂DocumentBuilderFactory fact…

java 对象工厂_Java设计模式之--工厂方式

在分析工厂模式之前,我们先看看普通模式下的Java三层结构。Controller(表现层)-Service(业务层)-Dao(持久层、数据库连接层),基于此三层结构完成JavaWeb相关业务。假设我们要完成的业务是添加员工信息,先创建Dao包,创建EmpDao接口和EmpDaoFac…

mysql 5.7 io 性能 aio_深入理解MySQL的InnoDB引擎

在MySQL中的引擎一文中说了,我们在几乎所有的情况下其实用的都是InnoDB引擎,这里我们就重点再看一下这个引擎,包括他的存储结构,线程模型和数据文件。我们可以通过show engine innodb status \G;(\G只是表示输出结果纵向表格输出)…

mysql构建数据立方体_OLAP数据建模工具Workbench的初步使用(数据立方体的建立)

OLAP数据建模工具Workbench的初步使用(数据立方体的建立)概要:1.workbench工具简介2.workbench简单操作(附demo)3.workbench初步使用总结1.workbench工具简介OLAP,(Online Analytical Processing,联机分析处理)。从事相关工作的小伙伴,具体的…

java循环1000000000_求十亿内所有质数的和,怎么做最快?

注:对知乎的公式编辑功能实在无力吐槽,用typora写的文章直接粘过来公式无法显示,只好又手工加上了全部公式,不过可能还是会有遗漏。大家可以点击这个链接 查看我的博客原文。以下是正文:第一次关注到这个问题是在做pro…

java飞行记录器是什么_运行java飞行记录器JFR(java flight recorder)

JFR上面讲到的工具都是作为快速的查看诊断工具的。如果要深入分析问题,可以选择使用内置的Java飞行记录器:Java Mission Control。转储JFR需要三步:1. 创建一个包含了你自己配置的JFR模板文件。运行jmc, 然后Window->Flight Recording Template Manag…

java申请安卓权限_java4android (包和访问权限)

什么是Java当中的软件包?为什么要使用软件包?如何给一个类打包?//将类放置到一个包中,需要使用package“包名”//打包 编译的方法 javac -d . Test.java//出现错误:编码GBK的不可映射字符 javac -encoding UTF-8 -d . …

php 条形码生成器,PHP条形码图像生成器

这是一个用于生成barocdes的简单PHP脚本://For displaying barcodes//Arguments are:// code Number you want outputted as a barcode//You can use this script in two ways:// From a webpage/PHP script // Directly in your web browser http://www.example.co…

java欧冠抽签,欧冠抽签吐槽:最大的“礼包”被C罗拿走!梅西出局概率超50%?...

欧冠16强抽签揭晓,结果:多特VS巴黎,皇马VS曼城,亚特兰大VS瓦伦西亚,马竞VS利物浦,切尔西VS拜仁,里昂VS尤文图斯,热刺VS莱比锡,那不勒斯VS巴萨。怎么评价这样的抽签呢&…

matlab 流固耦合,详讲流固耦合

引言近来,航空航天工业在世界上发展迅速,而作为“飞机心脏”的航空发动机是限制其发展的主要因素。目前,航空发动机日益向高负荷、高效率和高可靠性的趋势发展,高负荷导致的高逆压力梯度容易引起流动分离,同时随着科技…

php提示是否运行,php运行错误提示

第一种方法在php.ini文件里改变display_errors和error_reporting的值,没有的直接加上。; 第一处修改; display_errors Offdisplay_errors On; 第二处修改; error_reporting E_ALL & ~E_DEPRECATED & ~E_STRICTerror_reporting E_ALL | E_STRICTdisplay_…

usb转ttl模块与matlab,图文详解USB转TTL设备与电路板的连接

描述USB转TTL的硬件设备:USB转TTL主机一台;芯片选用PL-2303HXUSB转TTL刷机线,采用进口PL2303HX芯片。连接上电脑并安装驱动后,电脑即扩展出一个COM3或COM4....等的串口,配合相应软件就能对路由器、机顶盒或接收机等各种TTL接口的设备系统进行…

php乱码调试,NotePad++ 调试PHP代码中文显示乱码

最近在NotePad上调试PHP代码,按照示例代码进行调试,结果在显示中文的时候显示一堆乱码,于是上网百度,有2种方法可以解决:按调试方式有2种方法:1、菜单插件-NppExec:“插件”-“NppExec”-"Console Out…

php怎么设置网站的字符编码,php如何设置字符编码

php如何设置字符编码?a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charsetgb2312"),静态页面添加,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编…

oracle em 删除 重建,Oracle 11g 重建EM需要删除的对象

因为需求需要重建EM,重建时因为某些错误被迫停止,比如对象已存在、用户已经存在等,最终找出了创建必备的条件;1.环境变量(Oracle和Grid在同一个用户下安装):ORACLE_HOME 要设为DB路径;ORACLE_UNQNAME 要设置;2.删除em相关的同义词:select drop public synonym ||syn…

oracle导出数据视频教程,Oracle导入导出数据的几种方式

oracle导入导出数据1.导出dmp格式文件--备份某几张表 !!!!exp smsc/smsc file/data/oracle_bak/dmp/bakup0209_2.dmp tables\(send_msg_his,send_msg,recv_msg_his,recv_msg\)--备份整个数据库 !!&#xff…

php ldap 模块,不重新编译为PHP增加LDAP模块的支持

不重新编译为PHP增加LDAP模块的支持2018-11-28安装步骤1、进入到php安装源码目录rootvm-199:~/lnmp0.9# cd php-5.3.28rootvm-199:~/lnmp0.9/php-5.3.28# cd ext/ldap/rootvm-199:~/lnmp0.9/php-5.3.28/ext/ldap# lltotal 136drwxr-xr-x 3 501 staff 4096 2014-08-06 17:17 ./d…

linux qemu运行windows,用qemu搭建CentOS 6 for colinux虚拟系统——《Windows下搭建CentOS 6开发环境之一》...

用qemu搭建CentOS 6 for colinux虚拟系统一、安装的软硬件环境操作系统: Windows XP SP3硬件环境: CPU AMD 速龙AthlonII X3 445 (3.1GHz/AM3/3*512KB二缓/45纳米)内存 Corsair 海盗船 CMX4GX3M2A1600C9 DDR3 1600 4G(2G*2)硬盘 Seagate 希捷 ST3100052…

linux下c语言编程gedit,Ubuntu Linux下实现Gedit支持NesC语法高亮

在TinyOS下主要采用nesC编程,一种C语言的近亲。平时默认打开文本的工具是gedit,将以下代码保存为nesc.langtext/x-nc*.nc;*C.nc;*M.nc;*P.nc->///**/falsenewthistrueusingtaskpostnamespaceeventcommandmoduleimplementationconfigurationtypenamete…

C语言优先队列作用,C语言实现优先队列(priority queue)

堆排序是一个比较优秀的算法,堆这种数据结构在现实生活中有很多的应用,比如堆可以作为一个优先队列来使用,作为一个高效的优先队列,它与堆的结构一样,都有最大优先队列,最小优先队列.优先队列priority queue 是一种用来维护一组元素构成的集合S的数据结构,每一个元素…