1.任务目标
我们上节课学习了数据驱动,我们这节课学习一下断言,为什么要学习断言那,就是为了判断内容是服正确。
2.数据断言
断言使用的主要是assertEqual方法,如何检查测试用例执行是否正确:
(1)通过比对页面元素的文本信息,检查测试用例执行结果的正确性,编写代码如下:Find_element().text。
(2)通过对比页面标题信息,检查测试用例执行结果的正确性,编写代码如下:Driver.title。
(3)通过对比网址信息,检查测试用例执行结果的正确性,编写代码如下:Driver.current_url。
(4)通过比对页面元素的属性信息,检查测试用例执行结果的正确性,编写代码如下:FindElement().get_attribute(“value”)。
3.代码如下
读取csv文件
import csv
def rend():
ps = r"E:\rest.csv"
stem = open(ps, "r")
tat = csv.reader(stem)
list = []
i = 0
for row in tat:
if i != 0:
list.append(row)
i = i + 1
return list
if __name__ == '__main__':
arr = rend()
for row in arr:
print(row)
断言代码
import time
import unittest
import ddt
from selenium import webdriver
from test02 import rend
@ddt.ddt
class Data_dda(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(3)
stem_info = rend()
@ddt.data(*stem_info)
def test_id(self, list):
# 抛个异常
try:
self.driver.get("http://test.pandabrother.cn/gpracticef/my/login.html")
self.driver.find_element_by_xpath('//*[@id="input-name"]').send_keys("liufengning")
self.driver.find_element_by_xpath('//*[@id="input-password"]').send_keys("123456")
self.driver.find_element_by_xpath("/html/body/div/div/div[1]/section/form/div[3]/button").click()
self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/a').click()
self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a').click()
self.driver.find_element_by_xpath(
'/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[2]').click()
self.driver.find_element_by_id('input-name').send_keys(list[0])
self.driver.find_element_by_xpath('//*[@id="btn-save"]').click()
# 用text获取断言内容
emte = self.driver.find_element_by_id('out-tip').text
# 判断csv内容和读取内容是否一致用断言判断
self.assertEqual(emte, list[1])
print('用例执行成功')
# 如果判断错误则截图
except:
print("用例执行失败")
tiem01 = time.strftime("%Y-%m-%d-%H-%M-%S")
self.driver.get_screenshot_as_file(r"E:\," + tiem01 + ".png")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
执行结果如下
4.小结
断言以后用的非常多,他可以判断我们程序是否正确,也可以判断数据驱动后结果是否正确,也可以判断内容是否正确,用处很多,需要熟练掌握。