簡單版-關鍵字驅動

  1. 目的
    關鍵字驅動可以理解爲高級的數據驅動測試框架,使用被操作的元素對象、操作的方法和操作的數據值作爲測試過程輸入的自動化測試框架。
    被操作的元素對象、操作的方法和操作的數據值可以保存在數據數組、數據文件、數據庫中作爲關鍵字驅動測試框架的輸入。

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

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

  4. 百度搜索代碼:
    4.1. 程序文件結構
    KeyWordDrivenProject |---------------python工程
    data.txt |---------------數據文件,存儲測試數據
    KeyWordDrivenTest.py |---------------測試程序文件

4.2. data.txt
#操作||參數
browes||firefox
visit||https://www.baidu.com
click||kw@su–測試大全
sleep||3
assertkey||測試大全
exit_browes||None
4.3. KeyWordDrivenTest.py

from selenium import webdriver
import time

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

# 打開網址
def visit(url='https://www.baidu.com'):
    global driver
    driver.get(url)

# 查詢操作
def click(param):
    global driver
    # 切分定位值和查詢關鍵詞
    findid, key_value = param.split('--')
    # 切分定位搜索輸入框和搜索按鈕
    key_id, button_id = findid.split('@')
    # 向搜索按鈕輸入關鍵詞
    driver.find_element_by_id(key_id).send_keys(key_value)
    # 點擊搜索按鈕
    driver.find_element_by_id(button_id).click()

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

# 斷言關鍵詞
def assertkey(ass_key):
    global driver
    if ass_key in driver.page_source:
        return True
    else:
        return False

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


if __name__ == '__main__':
    # 從外部文件中讀取所有操作行和操作對象
    with open('./teststep1.txt', 'r', encoding='utf-8') as fp:
        datatest = fp.readlines()

    for data in datatest:
        # 逐行運行切分操作和操作對象
        action, value = data.split("||")
        # 拼接成操作語句
        command = '%s("%s")' % (action.strip(), value.strip())
        # 執行操作語句
        eval(command)

  1. 126郵箱登陸數據驅動代碼:
    5.1. 程序文件結構
    KeyWordDrivenProject |---------------python工程
    data.txt |---------------數據文件,存儲測試數據
    KeyWordDrivenTest.py |---------------測試程序文件

5.2. data.txt
browes||firefox
visit||https://www.126.com
click||switchAccountLogin
sleep||3
quit||
5.3. KeyWordDrivenTest.py

from selenium import webdriver
import time

# 全局變量
driver = ''
# 選擇打開的瀏覽器
def browes(brows):
    global driver
    if brows=='IE':
        driver = webdriver.Ie(executable_path='')
    elif brows=='chrome':
        driver = webdriver.Chrome(executable_path='')
    else:
        driver = webdriver.Firefox()
# 打開網址
def visit(url='https://www.126.com'):
    global driver
    driver.get(url)
# 操作
def click(id):
    global driver
    driver.find_element_by_id(id).click()
# 暫停3秒
def sleep(t=3):
    global driver
    time.sleep(int(t))
# 退出瀏覽器
def quit():
    global driver
    driver.quit()


if __name__ == '__main__':
    # 從外部文件中讀取所有操作行和操作對象
    with open('./teststep.txt', 'r') as fp:
        datatest = fp.readlines()

    for data in datatest:
        # 逐行運行切分操作和操作對象
        action,value = data.split("||")
        # 拼接成操作語句
        command = '%s(\"%s\")' % (action.strip() , value.strip())
        # 執行操作語句
        exec(command)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章