目录

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

二、好处

三、实例


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

学习链接:【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 Trueelse:print('singleclick命令参数不正确,请检查')return Falsedef START_APP(cls,*args):if args and len(args) >= 2:UItest.START_APP(args[1])return Trueelse: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('命令执行错误,测试终止....')breakelse:print('命令执行成功')
if __name__ == '__main__':UItest =

然仔20211207

参考文章关键字驱动框架入门教程https://blog.csdn.net/u011541946/category_6854930.html

class Data_managerCase:def __init__(self):passdef 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_listdef 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:nullprint("执行ok")elif key  =='shot':#obj:null;args1:null;args2:nullsshot()elif key  =='shot':sshot()# elif key == 'vedict':else:print("无法识别当前操作,请检查格式")

自动化测试之:关键字驱动相关推荐

  1. Selenium自动化框架:数据驱动、关键字驱动和混合

    什么是Selenium框架? 这个 Selenium框架 是一种代码结构,它使代码维护变得简单而高效.如果没有框架,用户可以将"c"框架产生了一些有益的结果,比如增加了代码可重用性 ...

  2. 关键字驱动实现web自动化

    接口自动化测试步骤几乎是一样的,可以用excel写测试用例,通过ddt实现数据驱动,而web自动化不符合测试步骤一致的要求,用ddt实现数据驱动并不理想,这时候可以使用关键字驱动实现web自动化. 一 ...

  3. 自动化测试里的数据驱动和关键字驱动思路的理解

    初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄须,不就是参数和函数嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 1.录制/回放的 ...

  4. java反射机制关键字驱动_搭建关键字驱动自动化测试框架

    本文是根据吴晓华编著的<Selenium WebDriver 实战宝典>的16.3节:关键字框架搭建及实战. 放在这里是为了以后有需要的时候,能够快速的搭建关键字驱动自动化框架. 实现功能 ...

  5. 什么是关键字驱动框架(自动化测试)

    什么是关键字驱动框架?     关键字驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试.关键字驱动的框架的基本工作是将测试用例分成四个不同的部分.首先是测试步骤(Test ...

  6. 十年测开如何理解自动化测试里的数据驱动、关键字驱动思路

    初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄须,不就是参数和函数其嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 01.录制/回 ...

  7. python中什么是数据驱动_携程大牛谈自动化测试里的数据驱动和关键字驱动思路的理解...

    对于初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄虚,不就是参数和函数嘛!其中也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 一.录制/回放 ...

  8. RobotFrameWork Web自动化测试之测试环境搭建

    前言 Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次很多的验收 ...

  9. QTP数据驱动和关键字驱动

    原文地址:[转]QTP数据驱动和关键字驱动作者:Cheers_Lee 原文地址:http://blog.sina.com.cn/s/blog_4d54c07a0100gk41.html 关键字驱动: ...

  10. 关键字驱动和数据驱动

    首先有一点大家自己要知道,一个简单的东西非得说来别人听不懂,来显得自己的高大上,不管哪个行业多是如此.只要自己搞懂了,自己也变成了那部分人. 什么叫做数据驱动? 答:所谓数据驱动就是同一段代码,参数一 ...

最新文章

  1. UML类图与类的关系详解
  2. GCC跟NASM联合编译
  3. which和whereis
  4. hdu5373(整除11)
  5. python在txt中的替换数据清洗_数据清洗过程中常见的排序和去重操作
  6. 利用深度学习方法进行情感分析以及在海航舆情云平台的实践
  7. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
  8. java泛型不是计算运行时的数据类型
  9. REST资源何时应获得其自己的地址?
  10. java语言概述、java语言特性、java语言发展史、java语言作用
  11. 装水体积c语言,C语言基础之--sizeof()运算符的使用以及注意
  12. Pandas Index 属性
  13. 开源jeecms,jeebbs学习笔记4——从jo_user表看持久层设计
  14. redis+tomcat实现session共享
  15. python清理浏览器文件_URL可以在浏览器或wget中正常工作,但是从Python或cURL中清空...
  16. 微信开发者工具下载及APPID获取
  17. 51单片机-矩阵键盘
  18. php微信开发之微信卡券
  19. 总结:linux运维常用命令
  20. Verilog语言注意事项

热门文章

  1. RK356X SPI 使用
  2. sql server 2000收缩数据库【极简操作】
  3. 用lua随手写的扑克发牌方案
  4. 升级Win11后,语言栏不在任务栏上
  5. 【stm32f407】硬件介绍
  6. IT狂人第一至四季/全集The IT Crowd迅雷下载
  7. Leetcode 1324. Print Words Vertically
  8. `英语` 2022/8/4
  9. 21 年年度最佳开源软件!
  10. 产品级Flutter开源项目FunAndroid,Provider MVVM的最佳实践