在写app自动化用例时,尝试用了关键字驱动的框架
记录一下自己对关键字驱动的理解:
1 关键字驱动指将用例步骤的操作封装为关键字,比如定位元素、点击元素、获取元素属性值、断言,这些都是操作关键字
2 在excel中按照用例执行过程,填写操作关键字以及要执行操作指令需要用到的参数信息及操作后保存的对象名
3 封装的代码框架,可以实现读取excel用例文件,拿到关键字操作及对应的参数
4 然后按照关键字动作传入对应的参数,去执行
关键点:
1)将用例步骤抽象出关键字
2)怎么执行excel中存放的字符串对应的方法
3)怎么将执行的结果存放到excel指定名称的变量
关键点的解决思路:
1)抽象关键字这一点:
ui用例主要的动作就是找元素、点击、输入、执行脚本、断言、获取属性,其他特殊的需要单独取思考封装
在模型中按照具体的action类型去判断:
if action_ == 'find':
#执行find_element
if action_ =='send_keys':
#对指定元素做输入操作
2)怎么执行excel中存放的字符串对应的方法
这里使用的是string的反射机制、利用类对象的__getattribute__(funcname)()实现动态调用类对象的方法
比如:find操作分为find_element、find_elements,那怎么让driver执行具体的函数?
driver.__getattribute__(find_)(getattr(AppiumBy,selector_),selector_value_)
其中find_是获取的excel定义的调用哪个find方法,值是find_element、find_elements
driver.__getattribute__(find_)就是返回find_element或find_elements函数的引用,就是driver.find_element()或driver.find_elements
getattr(AppiumBy,selector