自动化测试之:关键字驱动
一、关键字驱动的表达式:object.action(paramemeters)项目.动作.参数(范围)项目.验证.参数(范围)二、好处主打易用性,将测试代码、测试业务和测试数据分离,灵活性最高Robotframework...
·
目录
一、关键字驱动的表达式:
学习链接:【Python测试开发】零基础到大神,2021全网最新版,限时免费!_哔哩哔哩_bilibili
【Python测试开发】零基础到大神,2021全网最新版,限时免费!_哔哩哔哩_bilibili
action.objection(paramemeters)
用例脚本:动作.项目.参数(范围)
用例验证:验证.项目.参数(范围)
二、好处
主打易用性,将测试代码、测试业务和测试数据分离,灵活性最高
三、实例
创建如下几个文件

data.txt:用来放测试脚本
startAPP,r"E:\testpairroad\Pir.exe"动作:运行软件,项目:缺省,参数:Pir软件地址
singleclick,button_open# 动作:单击,项目:open按钮,参数:缺省
input,id=loadpath,path #动作:输入,项目:路径加载框,参数:路径
#singleclick,button_ok #动作:单击,项目:ok按钮,参数:缺省
Keywords:编写测试动作方法类keywords,如【启动】/【单击】动作,调用UItest里的函数,约束输入参数
import UItest
class Keywords:
@classmethod
#*args,不定向参数
def singleclick(cls,*args):
if args and len(args)>=2:
UItest.mouse_click(args[1]) #args[0]是singleclick这个操作参数
return True
else:
print('singleclick命令参数不正确,请检查')
return False
def START_APP(cls,*args):
if args and len(args) >= 2:
UItest.START_APP(args[1])
return True
else:
print('START_APP命令参数不正确,请检查')
return False
run.py:用来执行脚本
from Util import Util
from keywords import Keywords
def run_case_from_txt():
test_data = Util.get_test_data_from_txt('data.txt')
for line in test_data:
print('当前执行:{}'.format(line))
keywords = line.split(',')#将文本中测试脚本分离
if hasattr(keywords,keywords[0]):
action = getattr(keywords,keywords[0])
result = action(*keywords)
if not result:
print('命令执行错误,测试终止....')
break
else:
print('命令执行成功')
if __name__ == '__main__':
UItest =
然仔20211207
参考文章关键字驱动框架入门教程https://blog.csdn.net/u011541946/category_6854930.html
class Data_managerCase:
def __init__(self):
pass
def read_datamancsv(self):
with open(r'D:\pythonProject\pythonProject\data\test2.csv', encoding='utf-8')as file:
dataman_list = file.readlines()
testdataman_list = []
for Tdata in dataman_list:
T =Tdata.strip().split(',')#T代表行,Tdata代表整个测试表单,T【0】~T【6】分割每一列属性
# TestCase,TestScenarioID,decripion,keywords,obj,args1,args2 = T[0],T[1],T[2],T[3],T[4],T[5],T[6]
# TestCase = Tdata.strip().split(',')[0]
dict = {}
dict['TestCase'],dict['TestScenarioID'],dict['decripion'],dict['keywords'],dict['obj'],dict['args1'],dict['args2'] = T[0],T[1],T[2],T[3],T[4],T[5],T[6]
testdataman_list.append(dict)
print('测试表单:','\n',testdataman_list)
return testdataman_list
def dataman_test(self):
test_list = self.read_datamancsv()#读取csv文件
for testcase in test_list :
TestCase,TestScenarioID,decripion,key,obj,args1,args2 = testcase['TestCase'],testcase['TestScenarioID'],testcase['decripion'],testcase['keywords'],testcase['obj'],testcase['args1'],testcase['args2']
print('************',testcase['TestCase'],'步骤:', testcase['TestScenarioID'],testcase['decripion'],':','\n')
if key =='click':
click_picture(obj,args1)
print(key,obj,args1,args2,"执行ok")
else:
print('haha')
# testcase['keywords']=='clear_txt':
更新版1210
def read_datamancsv(self):
with open(r'D:\pythonProject\pythonProject\data\test2.csv', encoding='utf-8')as file:
data_list = file.readlines()
testdataman_list = []
for Tdata in data_list:#预处理
T =Tdata.strip().split(',')#T代表行,Tdata代表整个测试表单,T【0】~T【6】分割每一列属性
dict = {}
dict['TestCase'],dict['TestScenarioID'],dict['decripion'],dict['keywords'],dict['obj'],dict['args1'],dict['args2'] = T[0],T[1],T[2],T[3],T[4],T[5],T[6]
testdataman_list.append(dict)
print('测试表单:','\n',testdataman_list)
return testdataman_list
def dataman_test(self):
test_list = self.read_datamancsv()#读取csv文件
for testcase in test_list :
TestCase,TestScenarioID,decripion,key,obj,args1,args2 = testcase['TestCase'],testcase['TestScenarioID'],testcase['decripion'],testcase['keywords'],testcase['obj'],testcase['args1'],testcase['args2']
print('************',testcase['TestCase'],'步骤:', testcase['TestScenarioID'],testcase['decripion'],':','\n')
if key =='click':
click_picture(obj,args1)#obj:图像;args1:left/right;args2:次数
print("执行ok")
elif key =='input':
input_obj_text(obj,args1)#obj:文本框图像;args1:字符串;args2:null
print("执行ok")
elif key =='shot':#obj:null;args1:null;args2:null
sshot()
elif key =='shot':
sshot()
# elif key == 'vedict':
else:
print("无法识别当前操作,请检查格式")
更多推荐




所有评论(0)