超详细,自动化测试实战-获取配置文件信息(实例源码)

news2024/11/24 16:43:19

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

配置文件的类型

在python自动化测试中,为了减轻测试脚本维护过程中工作量,我们可以将一些常用的变量或者参数值放置在配置文件中。当我们需要修改某个变量的值时,只需修改配置文件中的选项值就可以实现这一目的。

除了可以减轻测试脚本在维护过程中的工作量,使用配置文件还有如下优点:
减少对源代码的改动点,提高代码的容错率;
提高了工作效率;

在自动化测试中,经常使用的配置文件类型包括如下两类。
分别为:
①.ini
②.yaml

其中.ini配置文件的书写格式如下:

[section1]
option1=value1
option2=value2......

[section2]
option3=value3
option4=value4......

【示例】

[log]
name=login_test
level=INFO
file_ok=True
file_name=login_test.log

.yaml配置文件的书写格式如下(一般使用字典的方式进行书写):

section1:
    option1: value1
    option2: value2
......

section2:
    option3: value3
    option4: value4
......

【示例】

log:
   name: login_test
   level: WARNING
   file_ok: False
   file_name: mylog.log

【说明】在使用.yaml配置文件时,option与value之间需要有一个空格

读取配置文件信息的操作流程

1、针对.ini配置文件,直接使用python自带的configparser模块读写配置文件

导入configparser模块:from configparser import ConfigParser;
实例化ConfigParser类:config = ConfigParser();
读取配置文件:config.read(“配置文件名称.ini”,encoding=“utf-8”);
获取配置文件中某一option的值:val = config.get(“section名称”,“option名称”);
获取指定section中的所有option:opts = config.options(“section名称”);
获取当前配置文件中的所有section:secs = config.sections();

【说明】

支持读取出的数据为bool、int和float,需要将get()函数变更为:
getboolean(section,option);
getint(section,option);
getfloat(section,option);

2、针对.yaml配置文件,需要手动安装pyyaml:pip install pyyaml
引入yaml模块:import yaml;
打开yaml文件;
调用yaml.load函数加载文件对象,返回值为dict;

【示例】

import yaml

with open("log.yaml",encoding="utf-8") as fs:
    datas = yaml.load(fs,yaml.FullLoader)
    pass

for key,value in datas.items():
    print(key)
    print(value)

代码实现

from configparser import ConfigParser

config = ConfigParser()
# 读取配置文件
config.read("log.ini",encoding="utf-8")
# 读取配置文件中的某一项值
val = config.get("log","name")
print(val)

# 获取当前的section
secs = config.sections()
print(secs)

# 获取指定section中的所有options
opts = config.options("log")
print(opts)

封装读取配置文件的操作

由于读取配置文件信息的操作流程相对比较固定,因此我们可以其封装成一个类。当我们需要使用时,只需引入该模块即可。

from configparser import ConfigParser
import os

class HandleConfig(ConfigParser):

    def __init__(self,file_path):
        super().__init__()
        # 将配置文件读入内存
        self.read(file_path,encoding="utf-8")
        pass
    pass

# 在实际调用时,log.ini可以根据个人喜好进行自定义
file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"log.ini")

# 实例化配置类时,需要指定配置文件的名称
handleConfig = HandleConfig(file_path)
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人的成功都不是偶然,背后都是持之以恒、不懈奋斗的付出。让心中的梦想燃烧起来,勇往直前,无论前方多少困难与挑战,都要坚定地追寻,不断奋斗。

努力奋斗,不是为了取悦他人,而是为了超越自己;每一次努力都是对未来的投资,每一次坚持都是通向成功的钥匙。不畏困难,扬起帆船,勇往直前,开启属于自己的辉煌之路!

在逐梦的路上,不要畏惧失败与挫折,因为它们是成功的必经之路;坚持付出,相信自己的才华与能力,终将用汗水铸就辉煌,书写属于自己的传奇人生!

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

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

相关文章

03.Show and Tell

目录 前言泛读摘要IntroductionRelated Work小结 精读模型基于LSTM的句子生成器TrainingInference 实验评价标准数据集训练细节分数结果生成结果多样性讨论排名结果人工评价结果表征分析 结论 代码 前言 本课程来自深度之眼《多模态》训练营,部分截图来自课程视频。…

新题速看!2023阿里、腾讯、字节都在问的SQL数据库笔试题及答案都给你整理好啦!

♥ 前 言 2021到了最后一个月份,年后肯定有蛮多小伙伴需要跳槽换工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就…

保存位置不同,多个文件如何统一命名并给文件编号

在日常工作中,我们会经常碰到文件或文件夹需要整理归类下,或文件(夹)需要统一名称再编号下再保存,也方便日后用到文件时可以快速找到文件。大家有没有碰到文件多个,但是文件的保存位置不一样,并…

聚观早报 | 近2亿“救命款”每日优鲜不卖菜了;小鹏G6难过交付关

【聚观365】8月14日消息 近2亿元“救命款”每日优鲜不卖菜了 小鹏爆款G6难过交付关 AIGC在数字营销领域应用程度 iPhone SE 4设计基于iPhone 14 Modulal寻求A轮融资挑战英伟达 近2亿元“救命款”每日优鲜不卖菜了 从一家基于前置仓模式的蔬菜水果等本地生活服务商&#x…

多个项目使用的node版本不一致?vscode dev container + docker 真香

一、接手的项目多了,什么node版本都有~ 遇到这种情况,多数情况会使用 nvm 进行 node 版本管理,具体使用方法可戳nvm的安装与使用。但若要并行开发两个不同环境下的项目,不停切换node版本,也难免有些繁琐。此时&#xf…

基于HTML+CSS+Echarts大屏数据可视化集合共99套

基于HTMLCSSEcharts大屏数据可视化集合共99套 一、介绍二、展示1.大数据展示系统2.物流订单系统3.物流信息系统4.办税渠道监控平台5.车辆综合管控平台 三、其他系统实现四、获取源码 一、介绍 基于HTML/CSS/Echarts的会议展览、业务监控、风险预警、数据分析展示等多种展示需求…

共识算法初探

共识机制的背景 加密货币都是去中心化的,去中心化的基础就是P2P节点众多,那么如何吸引用户加入网络成为节点,有那些激励机制?同时,开发的重点是让多个节点维护一个数据库,那么如何决定哪个节点写入&#x…

浅谈人工智能技术与物联网结合带来的好处

物联网是指通过互联网和各种技术将设备进行连接,实时采集数据、交互信息的网络,对设备实现智能化自动化感知、识别和控制,给人们带来便利。 人工智能是计算机科学的一个分支,旨在研究和开发能够模拟人类智能的技术和方法。人工智能…

【apifox】如何写一份合格的 API 文档?

要想弄清楚如何开始写出一份合格的 API 文档,我们需要首先了解什么是 API,它的使用场景有哪些,应该具备什么样的能力。 什么是 API? 想象一下,当小 A 购入了一台新的电脑后,希望将显示画面投射至一块色准…

时序预测 | MATLAB实现基于BP神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于BP神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于BP神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 Matlab实现BP神经网络时间序列预测未来(完整…

OpenLayers实战,OpenLayers高德地图瓦片位置纠偏,将高德底图瓦片位置转换为EPSG:4326和EPSG:3857

专栏目录: OpenLayers实战进阶专栏目录 前言 在日常开发中,经常遇到使用高德底图,总是要对高德坐标进行转换才能使用,本章不需要对要素经纬度位置进行转换,而是使用OpenLayers将高德地图图层的所有瓦片从GCJ02坐标进行整体偏移为EPSG:4326和EPSG:3857坐标系来实现。 二…

如何有效实施和推广电子文件管理系统?

随着科技的快速发展,传统的纸质文件管理方式逐渐被电子文件管理系统所取代。电子文件管理系统能够提高工作效率、节省空间和资源,并且有助于保护和维护文件的安全性。 1. 确定需求和目标 在实施电子文件管理系统之前,首先需要明确组织的需求…

TMC Self-Managed 提升跨多云环境安全性

作为云原生技术栈的关键技术之一,Kubernetes 被企业用户广泛试用并开始支撑实际业务应用运行,实现技术先进性带来的生产力提升。但与此同时,随着 Kubernetes 技术的不断广泛与深化使用,企业用户也开始面临诸多技术上的挑战&#x…

功能解析丨客户端策略即时生效,向日葵“云策略”是什么

企业选择IT管理类的解决方案时,能否进行批量部署是一个很重要的考量,优秀的批量部署能力可以大幅降低IT管理人员的工作量,提升管理效率。 以常用的远程控制解决方案为例,部署方案是批量对客户端软件进行权限管理就是这一能力的具…

中电金信新企架 开启数字化转型“轻”时代

2022年12月15日,中国国际金融论坛在上海举办。国内外金融机构、生态企业共襄盛会,共议绿色金融、银行业数字化转型等议题,共享服务实体经济高质量发展的新举措、新模式。 △中电金信研究院副院长、企业数字化架构转型咨询部总经理曲向阳发布会…

摸准天气“小心思”,躲避恶劣天气“偷袭”

打开天气预报一看,天气真的很“善变”,既是高温又暴雨,偶尔还有台风路过,“蒸”的让人太太太难受了。看着天气在放晴和即将下雨之间“徘徊”,总是纠结带不带雨伞,让我的每次出门都成了一场冒险之旅。 持…

低代码平台:简化软件开发步骤,让开发更简单

目录 一、与传统IT开发相比,低代码开发的优势 二、低代码是时代发展的产物 三、善用低代码 四、总结 软件开发已经成为企业发展不可或缺的一环。然而,传统的软件开发模式常常面临着繁琐冗长的工作流程、高昂的开发成本以及难以跟进快速变化的市场需求的挑…

AudioCodes桌面电话和Zoom ZTP曝出严重漏洞,用户面临窃听风险

近日,AudioCodes桌面电话和Zoom的Zero Touch Provisioning (ZTP)被曝存在多个安全漏洞,恶意攻击者可能利用这些漏洞进行远程攻击。 SySS安全研究员Moritz Abrell在周五(8月11日)发表的一份分析报告中提到:外部攻击者可…

设备管理系统能起到什么作用?

在现代工业运营中,设备的高效管理和维护对于保障生产稳定运行和提升企业竞争力至关重要。而设备管理系统作为一种关键工具,能够极大地提高企业的生产效率和设备维护的准确性。本文将深入探讨设备管理系统的作用,以PreMaint设备数字化平台为例…

年薪6.5万美元|生物医学老师获美国耶鲁大学博士后职位

I老师就职于双非二本院校,希望通过出国研修以提升科研背景,在公派访学和申请导师出资的博士后之间,其选择了后者。最终我们落实了美国耶鲁大学的职位,头衔为Associate Research Scientist(副研究科学家)&am…