自定义用户关键字
- 自定义的用户关键字只能在此测试套件中使用,其他测试套件不能使用
提取关键字
将测试步骤中可公用的部分进行合并,以便其他测试用例引用
- 已编写好rf代码,如图所示
- 将3、4、5、5、6提取成关键字:选中这几步,右键extract keyworks,设置关键字名字为login with name and pwd ,并且设置两个参数,如下所示
创建关键字
根据自己需求编写关键字要实现的功能
- 自定义一个关键字,输入两个字符串,判断是否相等,相等则输出True,不等则输出False
- 使用自定义关键字
自定义关键字库
-
自定义关键字库的意义:对于系统的操作定义成一个个关键字的话,不懂代码的同学,可以使用定义好的关键字即可实现自动化操作
-
只要在rf脚本中引用自定义的关键字库即可使用自定义关键字库中的关键字,根据定义的关键字范围来决定,参考ROBOT_LIBRARY_SCOPE说明
|值 | 含义 |
|–|--|
| GLOBAL | 在整个测试执行过程中只创建一个实例,所有测试用例和测试套件共享|
|SUITE | 每个测试套件创建一个新实例 |
| TEST |默认值,为每个测试用例创建一个新实例 | -
登录csdn用python代码实现,如下
(代码下载地址,这里是以模块的形式实现,里面还包含以库的形式实现关键字库)
#coding:utf-8
from robot.api.deco import keyword
from selenium import webdriver
__version__ = "1.0.0" #版本
class CustomKeyword():
ROBOT_LIBRARY_SCOPE = "SUITE" #说明关键字范围
ROBOT_AUTO_KEYWORDS = False #值设置为false则公用方法不会自动被识别为关键字,需要使用@keyword进行修饰
def __init__(self):
self.driver=None
@keyword('get url')
def get_url(self):
self.driver = webdriver.Chrome()
@keyword('login with namepwd') # 关键字名字 login with name
def log_with_name(self,name,pwd):
self.driver.set_window_size(1920,1080)
self.driver.get("https://passport.csdn.net/login?code=public")
self.driver.find_element('xpath',"//a[contains(.,'账号密码登录')]").click()
self.driver.find_element('xpath','//input[@placeholder="手机号/邮箱/用户名"]').send_keys(name)
self.driver.find_element('xpath','//input[@placeholder="密码"]').send_keys(pwd)
self.driver.find_element('xpath','//*[@id="app"]/div/div/div[1]/div[2]/div[5]/div/div[6]/div/button').click()
name_text=self.driver.find_element('xpath','//*[@id="csdn-toolbar"]/div/div/div[3]/div/div[1]/a').text
return name_text
@keyword('close browser')
def close_browser(self):
self.driver.close()
if __name__=='__main__': #验证代码
assert 'zd1111'==CustomKeyword.log_with_name("917185537","zd111")
- 保存文件并且文件名和类名一致为
CustomKeyword.py
- 在rf的测试套件中导入
CustomKeyword.py
- 编写rf脚本,如图所示
- 执行结果失败(因为输入的账户和密码是不存在的)