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

本文详细介绍了如何在Robot Framework中创建和使用自定义关键字,包括从测试步骤中提取公用部分、编写自定义关键字库以及设置关键字范围。通过自定义关键字,即使不懂代码的测试人员也能方便地进行自动化操作。示例代码展示了如何实现登录功能,并演示了自定义关键字库的导入和使用。最后,给出了登录功能的Python实现及RF脚本执行结果。
摘要由CSDN通过智能技术生成

自定义用户关键字

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

提取关键字

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

  • 已编写好rf代码,如图所示
    登录csdn的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脚本,如图所示rf测试脚本
  • 执行结果失败(因为输入的账户和密码是不存在的)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值