当前位置: 首页 > news >正文

python自动化面试问题——关于python

1、如何做自动化测试,或者结合你的项目说一下你的自动化测试是怎么做的,或者你的自动化测试目录结构是怎么样的?

答:面试官你好,我使用的pycharm进行创建项目,创建好之后呢,使用PO模式创建目录结构,创建了common目录用来保存公共方法及公共配置,创建data目录用于存储数据,我当时使用的测试数据是excel格式的数据,创建log目录用于存放错误日志,用例成功失败的截图,保存测试报告;创建pages用来保存页面类。创建testcases用来保存测试用例。创建readme用来对项目进行说明。

在common目录下我会创建getdata.py文件用来获取测试数据,创建report.py文件来进行定义logger记录器、生成测试报告以及定义截图函数等。在pages目录下,创建基础的页面类和其他页面类的py文件,在基础页面类中我主要放的是打开浏览器关闭浏览器的操作以及定位元素、获取弹出框文本信息等操作,其他页面类(结合你项目负责的模块进行说),主要是成功失败的断言验证,截图操作等,都继承了基础页面类的方法。在testcases目录下创建了测试用例的py文件,我当时使用的框架是unittest,在测试用例类的py文件中,使用的是ddt实现数据驱动,我导入了ddt,data和unpack模块,在测试类的前面我使用了@ddt,在测试用例方法前面我使用了@data进行传入测试数据(把参数当成是测试数据,参数可以是单个值、列表、元祖、字典),使用了@unpack进行解包(将元组或者列表解析成多个参数)。(setUp中创建各对象,写日志,登录,检查是否登录成功,截图,异常处理,这里可以不用说,问到了就说)

在run.py文件中使用一个变量指定所有的测试用例目录,然后采用unittest.defaultTestLoader.discover方法进行批量添加测试用例,然后调用Report里面生成测试报告的方法将批量添加的测试用例的测试套件当作参数进行传递。

2、python的路径如何进行拼接?

导入os模块,使用os.path.join进行拼接,比如

path = os.path.join("folder", "subfolder", "file.txt")

使用from pathlib import Path中的Path模块进行拼接

# 将路径转为当前系统的正确格式
path = Path("some\\mixed/slashes.txt").resolve()
print(path)  # 自动转换为系统格式

3、python如何拼接两个文件?

第一种方式:

import shutil

def merge_with_shutil(file1, file2, output_file):
"""使用 shutil 高效合并文件"""
with open(output_file, 'wb') as out:
# 复制第一个文件
with open(file1, 'rb') as f1:
shutil.copyfileobj(f1, out)

# 复制第二个文件
with open(file2, 'rb') as f2:
shutil.copyfileobj(f2, out)

# 使用示例
merge_with_shutil('data1.bin', 'data2.bin', 'full_data.bin')

第二种方式:追加合并(多次合并)

def append_file(source, destination):
"""将一个文件追加到另一个文件末尾"""
with open(source, 'rb') as src, \
open(destination, 'ab') as dst:  # 'a' 表示追加模式
shutil.copyfileobj(src, dst)

# 使用示例:分多次合并多个文件
append_file('log1.txt', 'all_logs.txt')
append_file('log2.txt', 'all_logs.txt')
append_file('log3.txt', 'all_logs.txt')

第三种方式:合并多个文件,采用pandas的方式

import glob

import pandas as pd

# 获取所有CSV文件
all_files = glob.glob('*.csv')

# 读取并合并所有文件
df_list = [pd.read_csv(f) for f in all_files]
result = pd.concat(df_list, ignore_index=True)

http://www.dtcms.com/a/272798.html

相关文章:

  • 029_构造器重载与默认构造器
  • 【报错】Could not find a package configuration file provided by ‘glog’”
  • “Datawhale AI夏令营”基于带货视频评论的用户洞察挑战赛
  • 使用Tensorflow和CNN进行猫狗图片训练的实战总结
  • P1722 矩阵 II 题解 DFS深度优先遍历与卡特兰数(Catalan number)解
  • Spring Boot+Redis+Caffeine 二级缓存架构的终极实现方案、包含万级QPS下的黄金配置参数、全文超过2500字(博君一赞)
  • XGBoosting算法详解(Boosting思想的代表算法)
  • C语言<数据结构-链表>
  • LangChain RAG 实战
  • Transformers 和 PyTorch 的区别与安装指南
  • Docker 高级管理--Dockerfile镜像制作
  • Context Engineering Framework 系统详细介绍
  • 链表算法之【合并两个有序链表】
  • 牛客笔试题 除2!
  • 读取按键的四种方式
  • IMU误差模型
  • 显卡GPU的架构和工作原理
  • 输入框过滤选项列表,el-checkbox-group单选
  • JDK 1.7 vs JDK 1.8
  • 为什么域名加端口访问需要放行端口?
  • 【算法训练营Day11】二叉树part1
  • c语言初阶 指针
  • CH9121T电路及配置详解
  • 【算法笔记 day three】滑动窗口(其他类型)
  • Spring Security 技术原理与实战全景详解
  • 【OD机试题解法笔记】根据IP查找城市
  • 观众信息设置与统计(视频高级分析与统计功能)
  • 身份认证缺陷
  • Gulp实现功能及插件总结
  • java并发包下CountDownLatch、Semaphore用法