一,简单介绍下os模块常用得操作(自动化测试中)
其实在自动化中,应用到os模块的地方不多,而且常用的就几个。
__file__ ,在os模块中应用时表示为当前的文件名
1-- 获取当前文件的绝对路径:
os.path.abspath(__file__)
2-- 获取当前文件(文件夹)所在的目录
os.path.dirname() -- 括号里面的参数必须是一个绝对路径
3-- 路径拼接:
os.path.join()-- 通过上面两个方法可以获取得到项目目录后,与另一个文件进行拼接,得到该文件的绝对路径
还想学习更多关于os模块的应用,可以再次扩展
下面为,在接口自动化测试框架中对路径的处理:
import os
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 得到当前文件下得项目路径,方便后续与各种文件的路径拼接
# 测试用例路径
cases_dir = os.path.join(base_dir, "TestCases")
# 测试数据大的路径
datas_dir = os.path.join(base_dir, "TestDatas")
# 测试报告路径
reports_dir = os.path.join(base_dir, r"Outputs\reports") # r表示转义字符
# 日志的路径
logs_dir = os.path.join(base_dir, r"Outputs\logs")
# 配置文件的路径
conf_dir = os.path.join(base_dir, "Conf")
二,异常捕获的常用语法
在工作中调试代码出现报错,首先先自己去尝试理解报错内容,如果英文不懂,则翻译
找到自己写的代码中的第几行出错了,再去尝试修复报错
一、常见代码异常
1、变量没定义:NameError
2、语法错误:SyntaxError
3、键不存在:KeyError
4、没找到模块:ModuleNotFoundError
5、类型错误:TypeError
下面来介绍异常捕获。
什么时候需要捕获异常呢?
其实有几个比较标准的运用场景,
二,与第三方资源交互的时候,一定要处理异常
资源的释放问题,例如,http连接,数据库的连接,excel操作
异常捕获的常用语法:
try:
可能会出错的代码
except: (如果出错,进入except)
捕获异常
代码报错后执行的代码
raise(抛出异常)
else:
try里面的代码没报错时,执行大的代码
finally:
无论是否出现异常,一定会执行的代码
eg:
# 如果文件打开成功,则接着写入数据。
try:
fs = open(r"D:\Pychram-Workspace\py30\python练习.txt","r",encoding="utf-8")
# fs.write("成功写入")
except: # 捕获异常
print("代码出错了!!") # 我做了我自己的事情。输出了一些内容。
raise # 会把异常信息抛出。让python接收到
else:
fs.write("成功写入")
finally:
print("一定会执行的代码!!")
try:
fs.close() # 清理收尾工作。无论成功还是失败都会执行的代码。
except:
pass # 如果fs.close()失败了,不用处理。直接忽略异常。
还有另一种写法:
try:
代码
except 异常名字:
处理代码
except 异常名字:
处理代码
except 异常名字:
处理代码
except Exception as e: # 其中Exception为所有异常的基类,当你不知道为啥类型错误时,写这个就ok
print(e)
pass
其中raise和print(Exception)的区别就是raise打印出来的报错信息更加详细
简单的练习题:
def get_money():
try:
price = float(input("请输入橘子的价格: "))
weight = float(input("请输入橘子的重量:"))
except:
print("请输入正确的数据类型")
raise
else:
money = price * weight
print("您购买的橘子的金额为:{}".format(money))
finally:
print("欢迎下次光临")
get_money()
后续在ui自动化中会比较经常用到,后续踩坑补充,