-
目的
關鍵字驅動可以理解爲高級的數據驅動測試框架,使用被操作的元素對象、操作的方法和操作的數據值作爲測試過程輸入的自動化測試框架。
被操作的元素對象、操作的方法和操作的數據值可以保存在數據數組、數據文件、數據庫中作爲關鍵字驅動測試框架的輸入。 -
步驟
(1)編寫測試腳本,腳本需要指出從操作元素對象、操作的方法、操作的數據值;
(2)將測試腳本使用的測試數據存入程序對象、文件或數據庫等外部介質中;
(3)運行腳本過程中,循環調用存儲在外部介質中的測試數據;
(4)驗證所有的測試結果是否符合預期結果。 -
測試邏輯:
(1)打開百度首頁
(2)在搜索框輸入一個搜索關鍵詞
(3)點擊搜索按鈕
(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)
- 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)