Python web框架搭建

web自動化的做用就是經過代碼自動化代替人工手動測試,節省人力、時間和精力;那麼又是若是進行自動測試呢?思路以下:html

下面經過一個例子說明一下:登陸操做


手動測試是直接在輸入框輸入用戶名、密碼、而後點擊登陸按鈕;web

那麼代碼也一樣道理;chrome

一、先定位到用戶名、密碼的輸入框元素和登陸按鈕元素---pagelocators模塊

pagelocators模塊--login_locator.py(LoginLocator類)瀏覽器

from selenium.webdriver.common.by import By
class LoginLocator:
#定位用戶名輸入框
uer_account=(By.XPATH,'//input[@placeholder="請輸入你的帳號/手機號"]')
#定位密碼輸入框
password=(By.XPATH,'//input[@placeholder="請輸入你的密碼"]')
#定位登陸按鈕
button=(By.XPATH,'//button[@id="loginBtn"]')框架


 

二、而後進行輸入用戶名、密碼、點擊登陸按鈕操做(前提準備好測試用例--testdatas模塊)---pageprojects模塊

pageprojects模塊---login_page.py(定義LoginPage類):測試

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from PageLocators.login_locator import LoginLocator as loc
from Commons.BasePage import BasePage
import timeui

class LoginPage(BasePage):
       #登陸操做
      def login_success(self,account,password):
            name="登陸模塊"
            WebDriverWait(self.driver,30).until(EC.visibility_of_element_located(loc.uer_account))
            self.driver.find_element(*loc.uer_account).clear()
            self.driver.find_element(*loc.uer_account).send_keys(account)
            WebDriverWait(self.driver,30).until(EC.visibility_of_element_located(loc.password))
            self.driver.find_element(*loc.password).clear()
            self.driver.find_element(*loc.password).send_keys(password)
            self.driver.find_element(*loc.button).click()
            self.save_webImgs(model=name)
            time.sleep(1)spa


 

testdatas模塊--Login_datas.py日誌

#正常場景---正常登陸
success_data={'account':'101****4088','password':'******','check':'登陸成功'}orm


 

三、進行測試用例操做---testcases模塊

testcases模塊--test_login.py(TestApi類並繼承(unittest.TestCase))

from selenium import webdriver
from TestDatas import common_datas as cd
from TestDatas import Login_datas as ld
from ddt import ddt,data
import unittest
from PageProjects.login_page import LoginPage

def setUp(self):
    #配置WebDriver驅動的環境變量
    chrome_driver=r"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe"
    #打開瀏覽器
    self.driver=webdriver.Chrome(chrome_driver)
    #打開Aos登陸頁面
    self.driver.get("http://*****/cn/login")
    self.driver.maximize_window()
    self.lp=LoginPage(self.driver)

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

#成功登陸的狀況
def test_login_1_success(self):
     logging.info("*********登陸用例:正常場景:使用正確的用戶名和密碼登錄*********")
     #登陸頁面--登陸功能--輸入用戶名和密碼
     self.lp.login_success(ld.success_data['account'],ld.success_data['password'])
    #斷言
    try:
        act_check=self.lp.get_success_msg()
        self.assertEqual(act_check,ld.success_data['check'])
        logging.info('成功登陸的用戶名{0},密碼爲{1}'.format(ld.success_data['account'],ld.success_data['password']))
        logging.info('登陸成功')
    except EnvironmentError as e:
        logging.info("登陸異常{0}".format(e))
        time.sleep(5)


 

四、測試報告模塊

import unittest
from Commons import path_config
import HTMLTestRunnerNew
from TestCases.test_login import TestApi
import logging
from Commons import logger
suite=unittest.TestSuite()
loader=unittest.TestLoader()

# file=open('report.html','wb+')
with open(path_config.report_dir,'wb+') as file:
suite.addTest(loader.loadTestsFromTestCase(TestApi))
runner=HTMLTestRunnerNew.HTMLTestRunner(stream=file, verbosity=2,title='linda測試接口報告',description='Python10_test',tester=None)
runner.run(suite)

 

以上只是作了一個簡單的框架,能夠加上日誌、截圖等模塊

相關文章
相關標籤/搜索