簡單版-關鍵字&數據混合驅動

  1. 目的
    相同的測試腳本使用不同的測試數據來執行,實現測試數據(數據和操作關鍵詞分離)和測試腳本分離。

  2. 步驟
    (1)編寫測試腳本,腳本需要指出從程序對象、文件或數據庫讀入測試數據;
    (2)將測試腳本使用的測試數據存入程序對象、文件或數據庫等外部介質中;
    (3)運行腳本過程中,循環調用存儲在外部介質中的測試數據;
    (4)驗證所有的測試結果是否符合預期結果。

  3. 測試邏輯:
    (1)打開百度首頁
    (2)在搜索框輸入一個搜索關鍵詞
    (3)點擊搜索按鈕
    (4)驗證搜索結果頁面是否包含預期關鍵字,包含則認爲測試執行通過,否則認爲測試執行失敗。

  4. 百度搜索代碼:

4.1.	程序文件結構
HybridDrivenProject	|---------------python工程
testdata.txt			|---------------數據文件,存儲測試數據
teststep.txt			|---------------數據文件,存儲關鍵字步驟
DataDrivenTest.py		|---------------測試程序文件

4.2.	testdata.txt
http://www.126.com
http://www.sohu.com
4.3.	teststep.txt	
open_browes||firfox
visit||${url}
sleep||3
quit||None

4.4.	HybridDrivenTest.py	
import time
import re
from selenium import webdriver

# 全局變量
driver = None
# 選擇要打開瀏覽器的瀏覽器並打開
def open_browes(brows='firefox'):
    global driver
    if 'ie' in brows:
        driver = webdriver.Ie(executable_path='')
    elif 'chrome' in brows:
        driver = webdriver.Chrome(executable_path='')
    else:
        driver = webdriver.Firefox()

# 打開網址
def visit(url=None):
    global driver
    if url is None:
        raise
    driver.get(url)

# 暫停3秒
def sleep(t):
    time.sleep(int(t))

# 退出瀏覽器
def quit(x):
    global driver
    driver.quit()

if __name__ == '__main__':
    # 讀取訪問網址的數據文件
    with open('./testdata.txt', 'r') as fp:
        testdata = fp.readlines()
    # 讀取操作數據文件
    with open('./teststep.txt', 'r') as fp:
        teststep = fp.readlines()
    # 循環遍歷網址、操作步驟
    for url_info in testdata:
        for data in teststep:
            action, value = data.split('||')
            # 判斷操作是否還有其他參數
            if re.search(r'\$\{\w+\}',value):
                value = url_info
            command = '%s("%s")' % (action.strip(), value.strip())
            exec(command)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章