robotframework自定义关键字&关键字库

rf中自定义关键字

  • 自定义用户关键字
    • 提取关键字
    • 创建关键字
  • 自定义关键字库

自定义用户关键字

  • 自定义的用户关键字只能在此测试套件中使用,其他测试套件不能使用

提取关键字

将测试步骤中可公用的部分进行合并,以便其他测试用例引用

  • 已编写好rf代码,如图所示
    robotframework自定义关键字&关键字库_第1张图片
  • 将3、4、5、5、6提取成关键字:选中这几步,右键extract keyworks,设置关键字名字为login with name and pwd ,并且设置两个参数,如下所示robotframework自定义关键字&关键字库_第2张图片
    robotframework自定义关键字&关键字库_第3张图片

创建关键字

根据自己需求编写关键字要实现的功能

  • 自定义一个关键字,输入两个字符串,判断是否相等,相等则输出True,不等则输出Falserobotframework自定义关键字&关键字库_第4张图片
  • 使用自定义关键字robotframework自定义关键字&关键字库_第5张图片

自定义关键字库

  • 自定义关键字库的意义:对于系统的操作定义成一个个关键字的话,不懂代码的同学,可以使用定义好的关键字即可实现自动化操作

  • 只要在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脚本,如图所示robotframework自定义关键字&关键字库_第6张图片
  • 执行结果失败(因为输入的账户和密码是不存在的)
    robotframework自定义关键字&关键字库_第7张图片

你可能感兴趣的:(学习笔记,软件测试,robot,framework,python,selenium,经验分享)