数据驱动执行出问题
来源:8-6 日志模块在项目中如何运用及流程梳理

慕工程8122668
2019-08-25
#coding=utf-8
import ddt
import unittest
import sys
sys.path.append("C:/Users/57585/Desktop/script/")
import traceback
from business.register_business import RegisterBusiness
from selenium import webdriver
import HTMLTestRunner
import os
import time
#邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息
@ddt.ddt
class FirstDdtCase(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://www.5itest.cn/register")
self.login = RegisterBusiness(self.driver)
def tearDown(self):
time.sleep(2)
#if sys.exc_info()[0]:
for method_name,error in self._outcome.errors:
if error:
case_name = self._testMethodName
file_path = os.path.join(os.getcwd()+"/report/"+case_name+".png")
self.driver.save_screenshot(file_path)
#print("这个是case的后置条件")
self.driver.close()
@ddt.data(
["12","Mushishi01","111111","code","user_email_error","请输入有效的电子邮箱地址"],
["@qq.com","Mushishi01","111111","code","user_email_error","请输入有效的电子邮箱地址"],
["12@qq.com","Mushishi01","111111","code","user_email_error","请输入有效的电子邮箱地址"]
)
@ddt.unpack
def test_register_case(self,email,username,password,code,assertCode,assertText):
email_error = self.login.register_function(email,username,password,code,assertCode,assertText)
self.assertFalse(email_error,"测试失败")
print(email_error)
if __name__ == "__main__":
file_path = os.path.join(os.getcwd()+"/report/"+"first_case1.html")
f = open(file_path,"wb")
suite = unittest.TestLoader().loadTestsFromTestCase(FirstDdtCase)
#runner = HTMLTestRunner.HTMLTestRunner(stream=f,title="This is first report1",description=u"这个是我们第一次测试报告1",verbosity=2)
#runner.run(suite)
unittest.TextTestRunner().run(suite)
【first_ddt_case.py的代码】
#coding=utf-8
from page.register_page import RegisterPage
class RegisterHandle(object):
def __init__(self,driver):
self.register_p = RegisterPage(driver)
#输入邮箱
def send_user_email(self,email):
self.register_p.get_email_element().send_keys(email)
#输入用户名
def send_user_name(self,username):
self.register_p.get_username_element().send_keys(username)
#输入密码
def send_user_password(self,password):
self.register_p.get_password_element().send_keys(password)
#输入验证码
def send_user_code(self,code):
self.register_p.get_code_element().send_keys(code)
#获取文字信息
def get_user_text(self,info,user_info):
try:
if info == 'user_email_error':
text = self.register_p.get_email_error_element().text
elif info == 'user_name_error':
text = self.register_p.get_name_error_element().text
elif info == 'password_error':
text = self.register_p.get_password_element().text
else:
text = self.register_p.get_code_element().text
except:
text = None
return text
#点击注册按钮
def click_register_button(self):
self.register_p.get_button_element().click()
#获取注册按钮文字
def get_register_text(self):
return self.register_p.get_button_element().text
【register_handle的代码】
[RegisterElement]
user_email = id>register_email
user_email_error = id>register_email-error
user_name = id>register_nickname
user_name_error = id>register_nickname-error
password = id>register_password
password_error = id>register_password-error
code_image = id>getcode_num
code_text = id>captcha_code
code_text_error = id>captcha_code-error
register_button = id>register-btn
【配置文件信息】
徐老师能不能帮我看看我做数据驱动按照你说的那个改的,把register_handle的获取文字信息的元素值改的和配置文件一致了,你说的结果是前两条成功,最后一条失败,为甚麽我的都是成功的,已经按照老师说的改了,麻烦老师帮忙看看原因,解决不了了
1回答
-
Mushishi
2019-08-25
你看一下你页面呀,执行每个case的时候页面的操作,然后去判断呀,就是你之姓第一条case,输入的是啥。然后这么去看
022019-10-01
相似问题