騰訊大牛教你簡單的自動化測試模型(Python+Selenium)

今天講解簡單的自動化測試模型,對於剛接觸自動化測試的同窗,因爲沒有編程語言的基礎,是搞不懂代碼裏面的函數、封裝、包以及其餘概念,只是瞭解字符串、數組、元組及字典這種最基本的名詞,更不懂自動化測試框架了。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()  # 退出瀏覽器

上面的代碼實現了將帳號密碼放在一個函數內,再去調用,進行登陸操做。

以上,但願對你有幫助,有被幫助到的朋友歡迎點贊,評論

相關文章
相關標籤/搜索