今天講解簡單的自動化測試模型,對於剛接觸自動化測試的同窗,因爲沒有編程語言的基礎,是搞不懂代碼裏面的函數、封裝、包以及其餘概念,只是瞭解字符串、數組、元組及字典這種最基本的名詞,更不懂自動化測試框架了。php
這篇筆記來粗略記下學習自動化測試的幾種模型。html
一、線性測試web
線性測試,顧名思義,就是一條路按照一條直線走到底。它的每一個腳本都是獨立的,均可以拿出來單獨運行,來驗證一個功能點,上兩段小代碼舉個栗子:面試
打開百度主頁:編程
# coding:utf-8數組
from time import sleep # 從time中引入sleep瀏覽器
from selenium import webdriver # 從selenium中引入webdriver框架
driver = webdriver.Firefox() # 選擇打開的瀏覽器編程語言
driver.maximize_window() # 瀏覽器窗口最大化模塊化
driver.implicitly_wait(3) # 隱式等待
driver.get("https://www.baidu.com") # 獲取URL,打開頁面
driver.quit() # 退出相關瀏覽器
打開百度主頁,並輸入查找內容:
# coding:utf-8
from time import sleep # 從time中引入sleep
from selenium import webdriver # 從selenium中引入webdriver
driver = webdriver.Firefox() # 選擇打開的瀏覽器
driver.maximize_window() # 瀏覽器窗口最大化
driver.implicitly_wait(3) # 隱式等待
driver.get("https://www.baidu.com") # 獲取URL,打開頁面
search = driver.find_element_by_id("kw") # 經過id定位搜索框
search.send_keys("selenium") # 填入"selenium"
sleep(5) # 直接等待
driver.quit() # 退出相關瀏覽器
以上兩段代碼,分別作了實現打開百度首頁和打開百度首頁後輸入查找內容的功能,均可以單獨拿出來執行。若是須要修改查找訪問頁面,那麼我須要兩段代碼都須要修改。當這類獨立的腳本數量多了起來,去修改這些內容花費的工做量太大,將會失去了自動化的目的。
二、模塊化與類庫
login.py
# coding:utf-8
from time import sleep
from selenium import webdriver # 從selenium中引入webdriver
def login_mantis():
driver = webdriver.Firefox() # 選擇打開的瀏覽器
driver.maximize_window() # 瀏覽器窗口最大化
driver.implicitly_wait(3) # 隱式等待
driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 獲取URL,打開頁面
sleep(1) # 直接等待
username = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 經過Xpath定位獲取輸入帳號框
username.send_keys("wuhaobo") # 輸入帳號
sleep(1)
password = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 經過Xpath定位獲取輸入密碼框
password.send_keys("123456") # 輸入密碼
sleep(1)
login = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 經過Xpath定位獲取登陸按鈕
login.click() # 點擊登陸按鈕
sleep(3)
上面的代碼實現了mantis登陸功能。
quit.py
# coding:utf-8
from selenium import webdriver # 從selenium中引入webdriver
def quit_mantis():
driver = webdriver.Firefox() # 選擇打開的瀏覽器
driver.quit() # 退出相關瀏覽器
上面的代碼實現了mantis退出功能。
do_something_in_mantis.py
# coding:utf-8
from time import sleep # 從time中引入sleep
from selenium import webdriver # 從selenium中引入webdriver
import login # 引入登陸模塊
import quit # 引入退出模塊
login.login_mantis() # 調用登陸模塊
print ">>>如下操做爲在登陸界面後的操做"
# 須要作的操做放在登陸和退出中間
print ">>>以上操做爲在登陸界面後的操做"
quit.quit_mantis() # 調用退出模塊
上面的代碼實現了調用登陸模塊和退出模塊。
若是對軟件測試、接口測試、自動化測試、面試經驗交流。感興趣能夠加軟件測試交流:1085991341,還會有同行一塊兒技術交流。
經過以上代碼能夠發現,登陸模塊和退出模塊可讓任意操做類腳本調用,省去了該部分代碼的重複量,便於維護的同時,也加快了代碼的開發速度。
三、數據驅動
直接理解成參數化輸入,不一樣結果輸出。
(1)、讀取TXT方式
將存好登陸的帳號密碼放置在兩個TXT文件中:

# coding:utf-8
from time import sleep
from selenium import webdriver # 從selenium中引入webdriver
username_file = open("G:\\joker_study\\username.txt") # 打開帳號文本路徑
username = username_file.read() # 取出帳號
password_file = open("G:\\joker_study\\password.txt") # 打開密碼文本路徑
password = password_file.read() # 取出密碼def login_mantis_by_txt():
driver = webdriver.Firefox() # 選擇打開的瀏覽器
driver.maximize_window() # 瀏覽器窗口最大化
driver.implicitly_wait(3) # 隱式等待
driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 獲取URL,打開頁面
sleep(1) # 直接等待
username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 獲取輸入帳號框
username_input.send_keys(username) # 輸入帳號
sleep(1)
password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 獲取輸入密碼框
password_input.send_keys(password) # 輸入密碼
sleep(1)
login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 獲取登陸按鈕
login_button.click() # 點擊登陸按鈕
sleep(3)
driver.quit() # 退出瀏覽器
上面的代碼實現了從TXT文件中讀出帳號和密碼,再傳入函數中,進行登陸操做。
(2)、經過函數
userconfig.py
# coding:utf-8
def username_password(username="CJOLER",password="123456"):
return username,password
login.py
# coding:utf-8
from time import sleep
from selenium import webdriver # 從selenium中引入webdriver
import userconfig # 引入userconfig文件
un, pw = userconfig.username_password()
print un, pw
def login_mantis_by_txt():
driver = webdriver.Firefox() # 選擇打開的瀏覽器
driver.maximize_window() # 瀏覽器窗口最大化
driver.implicitly_wait(3) # 隱式等待
driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php") # 獲取URL,打開頁面
sleep(1) # 直接等待
username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input") # 獲取輸入帳號框
username_input.send_keys(un) # 輸入帳號
sleep(1)
password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input") # 獲取輸入密碼框
password_input.send_keys(pw) # 輸入密碼
sleep(1)
login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input") # 獲取登陸按鈕
login_button.click() # 點擊登陸按鈕
sleep(3)
driver.quit() # 退出瀏覽器
上面的代碼實現了將帳號密碼放在一個函數內,再去調用,進行登陸操做。
以上,但願對你有幫助,有被幫助到的朋友歡迎點贊,評論