根据前面的介绍我们了解到了数据驱动的基本思想,接下来我们将数据驱动与web自动化e测试结合起来。
GitHub代码commits id:e302ad5
#!/bin/usr/env python3
# -*- coding: utf-8 -*-
# --------------------------------
# ProjectName:
# Author: Crisimple
# CreateTime: 2019/6/18 20:27
# FileName: first_ddt_case.py
# Description:
# Question:
# --------------------------------
import ddt
from code_package.business.register_business import RegisterBusiness
from selenium import webdriver
import unittest
import HTMLTestRunner
import os
import time
from code_package.util.read_excel import ReadExcel
@ddt.ddt
class FirstDdtCase(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Chrome("../tools/chromedriver.exe")
self.driver.maximize_window()
self.file_name = "D:/MySpace/Python/WebTest/code_package/image/test001.png"
self.driver.get("http://www.5itest.cn/register")
self.register_business = RegisterBusiness(self.driver)
def tearDown(self) -> None:
time.sleep(1)
for method_name, error in self._outcome.errors:
if error:
case_name = self._testMethodName
file_image_path = os.path.join(os.getcwd() + "\\report\\" + case_name + ".png")
self.driver.save_screenshot(file_image_path)
self.driver.close()
'''
@ddt.data(
# 邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息
['12', 'User01', 'Test@123', 'code', 'user_email_error', '请输入有效的电子邮件地址'],
['@qq.com', 'User01', 'Test@123', 'code', 'user_email_error', '请输入有效的电子邮件地址'],
['1213@qq.com', 'User01', 'Test@123', 'code', 'user_email_error', '请输入有效的电子邮件地址'],
)
'''
# 读取 excel 测试驱动的测试数据
re = ReadExcel()
data = re.get_data()
@ddt.data(*data)
def test_register_case(self, data):
email, username, password, code, assertCode, assertText = data
email_error = self.register_business.register_function(email, username, password, code, assertCode, assertText)
self.assertTrue(email_error, "测试失败")
if __name__ == "__main__":
unittest.main()