Python自動化測試系列[v1.0.0][數據驅動PARAMETERIZEEJSON]

安裝PARAMETERIZE

C:\Users\Administrator>pip install parameterized
Collecting parameterized
  Downloading https://files.pythonhosted.org/packages/a3/bf/6ef8239028beae8298e0806b4f79c2466b1b16ca5b85dc13d631c5ea92c4/parameterized-0.7.1-py2.py3-none-any.whl
Installing collected packages: parameterized
Successfully installed parameterized-0.7.1

測試代碼

# -*- coding: utf-8 -*-
# @Time: 4/27/2019 1:52 PM
# @Author : Yang DaWei
# @Project : DataDrivenTest
# @FileName: Unittest_Parameterized.py
import unittest
from selenium import webdriver
import time
from parameterized import parameterized
from selenium.common.exceptions import NoSuchElementException  # 引入NoSuchElementException異常類

class LoginTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.url = "http://mail.163.com"
        self.driver.implicitly_wait(10)

    def user_login_163(self, username, password):
        driver = self.driver
        driver.get(self.url)
        # 定義frame,他是頁面中的iframe控件
        frame = self.driver.find_element_by_xpath("//*[@id='loginDiv']/iframe")
        time.sleep(1)
        try:
            self.driver.switch_to.frame(frame)  # 切換進iframe控件
            self.driver.find_element_by_name("email").send_keys(username)  # 輸入用戶名
            self.driver.find_element_by_name("password").send_keys(password)  # 輸入密碼
            self.driver.find_element_by_id("dologin").click()  # 點擊登陸按鈕
        except NoSuchElementException as e:
            # 將未找到頁面元素的異常記錄進日誌
            raise e
        except Exception as e:
            raise e

    @parameterized.expand([
        ('', "davieyang", "請輸入帳號"),
        ("davieyang", '', "請輸入密碼"),
        ("error", "error", "帳號或密碼錯誤"),
    ])
    def test_login(self, username, password, assert_text):
        self.user_login_163(username, password)
        message = self.driver.find_element_by_id("nerror").text
        self.assertEqual(message, assert_text)

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main(verbosity=2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章