Python在Unittest中读取YAML文件的两种实现方式
本文介绍了在Python Unittest框架下读取YAML配置文件的两种常用方法。第一种利用ddt库的file_data装饰器直接加载数据;第二种通过自定义类封装YAML读取逻辑,在setUpClass中预处理数据供测试用例调用。文章提供了具体的代码示例,帮助开发者优化测试数据管理。
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/
Python读取YAML文件的两种方法概述
在Python中读取YAML文件主要包含两种实现路径:
基于ddt库的数据读取方式
第一种方法是借助ddt库进行数据读取。
第二种方法是定义专用的数据处理方法,并在测试流程中调用该方法获取数据。
基于自定义方法的数据调用方式
具体而言,第一种方式侧重于利用ddt库的功能。
@ddt.ddt
class loginTestPage(unittest.TestCase):
@ddt.file_data(path)
@ddt.unpack
def testlogin(self,**kwargs):
u'''
"输入邮件账号、用户名、密码符合要求
勾选同意协议" 1、注册成功,跳转到注册成功页面 "
1、验证URL,https://www.XX.com/site/register-success.html
2、邮箱收到注册成功邮件
3、数据库中user表中有成功添加注册账号数据"
:return:
'''
self.loginPage = CBLogin(self.driver)
log.info(kwargs)
self.page = Page(self.driver,kwargs.get('login_url'))
self.page.send_text(self.loginPage.login_sendkes_username(),kwargs.get('username'))
self.page.send_text(self.loginPage.login_sendkes_password(),kwargs.get('password'))
self.page.click(self.loginPage.login_click_btn())
# 断言登录是否成功
self.assertIsNotNone(self.loginPage.is_success(),"元素没有查找到,登录失败")
第二种方式则强调通过预定义的方法接口来调用数据。
class HandleYmal:
"""
获取测试环境的配置
"""
def __init__(self,file_path=None):
if file_path:
self.file_path=file_path
else:
#获取path
root_dir=os.path.dirname(os.path.abspath('.'))
print(root_dir)
self.file_path=root_dir+"/config/base.yaml"
def get_data(self):
fp=open(self.file_path,encoding="utf-8")
data=yaml.load(fp)
return data
@ddt.ddt
class loginTestPage(unittest.TestCase):
@classmethod
def setUpClass(cls):
"""前置应该是读取所有内容"""
yaml=HandleYmal()
cls.kwargs=yaml.get_data()['testenvironment']
cls.driver = webdriver.Chrome()
def testlogin(self):
u'''
"输入邮件账号、用户名、密码符合要求
勾选同意协议" 1、注册成功,跳转到注册成功页面 "
1、验证URL,https://www.chinabrands.com/site/register-success.html
2、邮箱收到注册成功邮件
3、数据库中user表中有成功添加注册账号数据"
:return:
'''
self.loginPage = CBLogin(self.driver)
log.info(self.kwargs)
self.page = Page(self.driver,self.kwargs.get('login_url'))
self.page.send_text(self.loginPage.login_sendkes_username(),self.kwargs.get('username'))
self.page.send_text(self.loginPage.login_sendkes_password(),self.kwargs.get('password'))
self.page.click(self.loginPage.login_click_btn())
# 断言登录是否成功
self.assertIsNotNone(self.loginPage.is_success(),"元素没有查找到,登录失败")
以上即为在Unittest环境中使用Python读取YAML文件的两种主要方案,更多Python相关技术文章欢迎持续关注本站内容。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









