数据驱动(ddt、text、excel、CSV、xml)

编程入门 行业动态 更新时间:2024-10-15 00:21:21

<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据驱动(ddt、text、excel、CSV、xml)"/>

数据驱动(ddt、text、excel、CSV、xml)

数据驱动之ddt

ddt库是第三方库,在dos命令窗口下安装,pip install ddt
其实现了编写一条测试用例的代码,验证多个测试点
@data表示元组的列表数据
@unpack表示用来解压元组到多个参数。

import unittest
from selenium import webdriver
from ddt import data,unpack,ddt
@ddt
class SianLogin(unittest.TestCase):def setUp(self) -> None:self.webdr = webdriver.Firefox()self.webdr.maximize_window()self.webdr.get("/")self.webdr.implicitly_wait(30)def tearDown(self) -> None:self.webdr.quit()@data(("","","请输入帐号"),("Mwyldnje2001","","请输入密码"),("","FF807612","请输帐号"),("Mwyldnje2002","FF807611","帐号或密码错误"),("Mwyldnje2003","FF807612","帐号或密码错误"),("Mwyldnje2002","FF807611","帐号或密码错误"),("Mwyldnje2003","FF807612",""))@unpackdef test_login(self,username,pwd,result):# 切换到账号密码登录self.webdr.find_element_by_css_selector("#lbNormal").click()# 切换到iframe框架下iframe = self.webdr.find_element_by_xpath('//div[@id="loginDiv"]/iframe')   # 定位iframe框架self.webdr.switch_to.frame(iframe)#  传入账号密码self.webdr.find_element_by_name("email").send_keys(username)self.webdr.find_element_by_name("password").send_keys(pwd)# 点击登录self.webdr.find_element_by_id("dologin").click()# 定位提示元素,并获取文本信息reminder_text = self.webdr.find_element_by_class_name("ferrorhead").text# 断言self.assertEqual(reminder_text,result)if __name__ == '__main__':unittest.main(verbosity=2)

再test_login中三个参数分别是username,pwd,result分别与@data的元组数据一一对应。

优化之 数据分离

注意:1、在@data调用get_data函数时增加了“”,是因为@data要求的数据类型是元组,加上“”后便把get_data函数返回的数据列表类型变为元组类型。
2、元组类型的数据不能作为函数值返回

import unittest
from selenium import webdriver
from ddt import data,unpack,ddtdef get_data():'''数据分离出来放到列表中'''return [["","","请输入帐号"],["Mwyldnje2001","","请输入密码"],["","FF807612","请输入帐号"],["Mwyldnje2002","FF807611","帐号或密码错误"]]@ddt
class SianLogin(unittest.TestCase):def setUp(self) -> None:self.webdr = webdriver.Firefox()self.webdr.maximize_window()self.webdr.get("/")self.webdr.implicitly_wait(30)def tearDown(self) -> None:self.webdr.quit()@data(*get_data())@unpackdef test_login(self,username,pwd,result):# 切换到账号密码登录self.webdr.find_element_by_css_selector("#lbNormal").click()# 切换到iframe框架下iframe = self.webdr.find_element_by_xpath('//div[@id="loginDiv"]/iframe')   # 定位iframe框架self.webdr.switch_to.frame(iframe)#  传入账号密码self.webdr.find_element_by_name("email").send_keys(username)self.webdr.find_element_by_name("password").send_keys(pwd)# 点击登录self.webdr.find_element_by_id("dologin").click()# 定位提示元素,并获取文本信息reminder_text = self.webdr.find_element_by_class_name("ferrorhead").text# 断言self.assertEqual(reminder_text,result)if __name__ == '__main__':unittest

更多推荐

数据驱动(ddt、text、excel、CSV、xml)

本文发布于:2024-02-12 12:16:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1687760.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   ddt   text   xml   CSV

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!