目录

一、关键字驱动的表达式:

二、好处

三、实例


一、关键字驱动的表达式:

学习链接:【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("无法识别当前操作,请检查格式")

Logo

一站式 AI 云服务平台

更多推荐