数据驱动执行出问题

来源: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

【配置文件信息】

http://img.mukewang.com/szimg/5d62755208c9c9fd14530456.jpg

徐老师能不能帮我看看我做数据驱动按照你说的那个改的,把register_handle的获取文字信息的元素值改的和配置文件一致了,你说的结果是前两条成功,最后一条失败,为甚麽我的都是成功的,已经按照老师说的改了,麻烦老师帮忙看看原因,解决不了了

写回答

1回答

Mushishi

2019-08-25

你看一下你页面呀,执行每个case的时候页面的操作,然后去判断呀,就是你之姓第一条case,输入的是啥。然后这么去看

0
2
Mushishi
回复
慕工程8122668
你数据驱动的时候把你错误的那两行 输入和获取到的打印
2019-10-01
共2条回复

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程