Python Robot Framework使用小结

最近项目需要研究了一下 Python Robot Framework,跳了一些坑。现在总结一下,以方便呢是加强记忆,另一方面呢是希望看到这个blog的同学能避免再次跳坑。

从头说起: 安装

有很多安装方式了,但是最简单,最保险的还是直接是用pip来在线安装,首先先安装了Python和Pip,然后一切都可以通过一个pip install来一键搞定。不错不错。

1. 安装robot framework

pip install robotframework
安装成功的话输入如下命令就能看到相关的显示
pybot --version

2. 安装robot RIDE

一个类似于IDE的工具,它是由Python开发的, 使用的wxPython GUI包,所以要安装RIDE要首先安装wxPython. 在window上安装wxPython很简单,从如下网站下载安装包安装就可以了。但是有一点需要注意的是,这里要使用32位的安装包,否则ride无法运行。
安装包下载地址: https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/
安装完RIDE以后就可以通过pip来安装RIDE
pip install robotframework-ride
安装完成以后在Python安装目录下的Scripts目录下执行如下命令就可以启动RIDE了
python ride.py
下面是RIDE的界面,可以看到还是比较简陋。所以个人认为用来配合调试还是可以,编辑case的话还不如vscode好用。

重点:编写case

Robot 的case十分简单,基本来说就是用文本文件来进行定义。可以直接使用使用txt,可以也可以使用RIDE支持的.robot格式的文件,但是这种文件也只是更换了一个后缀名,本质上还是文本文件。
robot是基于关键字的,所以它的case的书写的基本模式就是,使用关键字来作为操作符,操作符后面跟的是数据或参数。

用例的定义:

*** Test Cases *** 它后面写的是具体的用例

关键字的定义:

关键字的定义:
有三种类型的关键字
1 系统预定义关键字,“status should be”
2 case 文件中自定义关键字,可以在case文件中自定义在本case文件中可以使用的关键字比如
*** Keywords ***
keywords_name
***
其实这里也是定义一组操作
3 定义在test lib中的方法名,使用这种方式首先要引用test lib,然后就可以说会用引用的py文件中的方法名作为关键字
Library lib/LoginLibrary.py
这里需要注意关键字和方法名之间的对应关系。关键字和方法名之间的对应会去掉中间写空格,“_”,还会忽略大小写:比如像下面这样都是可以对应的
keyword                            methodName
Send Password                 send_password
Send Password                 sendPassword
SendPassword                  sendpassword
在py中自定义操作是一个强大的功能。

一个完整的case
*** Settings ***
Library OperatingSystem
Library lib/LoginLibrary.py

*** Test Cases ***
User can create an account and log in
  Create Valid User fred P4ssw0rd
  Attempt To Login fred P4ssw0rd
  Status Should Be Logged In

User cannot log in with bad password
  Create Valid User betty P4ssw0rd
  Attempt To Login betty wrong
  Status Should Be Access Denied

*** Keywords ***
Create valid user
  [Arguments] ${username} ${password}
  Create user ${username} ${password}
  Status should be SUCCESS


执行用例

执行用例很简单只需要使用命令
robot QuickStart1.txt

代码示例见:https://github.com/JiaLei123/PyAotuTest_Robot.git




你可能感兴趣的:(Python)