windows7 安装Robot Framework RIDE python3 版本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wxb880114/article/details/81944740

 

  • Robot Framework 的python 版本早出来了,但是 RIDE 还一直停留在 python2的 版本
  • 这么个优秀的框架,相信 RIDE 后续也会支持python3 版本的
  • 但是目前网上确实没有稳定的python3 版本 RIDE , 只搜索到了一个 develop 分支的版本

这篇贴的末尾有个python3-RIDE 的develop 分支版本 
感兴趣的可以去体验一把 
https://github.com/robotframework/RIDE/issues/1719

帖子中的原话是这样的,大意就是: 
目前还没有稳定的官方版本(这个项目差不多被放弃了) 
你可以从我的fork 体验一下develop 分支版本 
最后是linux 的安装命令: sudo -H pip3 install -U https://github.com/HelioGuilherme66/RIDE/archive/python3.zip

There is no official stable release (this project is more a less abandoned).
You can experiment latest development branch from my fork with:

sudo -H pip3 install -U https://github.com/HelioGuilherme66/RIDE/archive/python3.zip

Win7环境下安装

pip install -U https://github.com/HelioGuilherme66/RIDE/archive/python3.zip

pip list

https://github.com/robotframework/RIDE/issues/1719

如何启动 robot

python -m robotide.__init__
C:\Users\wangxb147>python -m robotide.__init__
Traceback (most recent call last):
  File "D:\Anaconda3\lib\runpy.py", line 174, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "D:\Anaconda3\lib\runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "D:\Anaconda3\lib\site-packages\robotide\__init__.py", line 35, in <modul
e>
    from robotide.utils import basestring, unicode
  File "D:\Anaconda3\lib\site-packages\robotide\utils\__init__.py", line 28, in
<module>
    from .eventhandler import RideEventHandler
  File "D:\Anaconda3\lib\site-packages\robotide\utils\eventhandler.py", line 15,
 in <module>
    import wx
ImportError: No module named 'wx'

pip install wxPython

7.安装selenium(cmd窗口中,cd到pip的安装目录下,执行pip install -U selenium命令)

8.安装selenium2library(cmd窗口中,cd到pip的安装目录下,执行pip install robotframework-selenium2library命令)

二 、RIDE界面操作

1.创建

创建项目New Project

点击:File->New Project

注:选择directory原因是,在directory的项目下可以创建测试套件,如果是tpye为file,则只能创建测试用例,这不利于用例的管理。

创建测试套件New Suite

右键项目Test,点击New Suite

注:选择file原因是,在file的测试套件下可以创建测试用例,如果是tpye为directory,还得重新再继续建file的测试套件,才能创建测试用例,因为测试用例只能在file类型下创建。

创建测试用例New Test Case

右键测试套件,点击New Test Case

创建完成后,最终界面如下

2.RIDE界面说明

【1】测试套件工作区

1.测试套件Edit区

大体分成4个部分:

(1)加载外部文件

Library:加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库

Resource:加载资源,主要是你工程相关的资源文件

Variables:加载变量文件,不怎么用,可暂时忽略

(2)定义内部变量

Add Scalar:定义变量。

Add List:定义列表型变量

Add Dict:定义字典型变量

(3)元数据定义

Add Metadata:定义元数据

(4)settings

一般settings是隐藏的,点击settings按钮,则会显示

Documentation:文档,每一项都有。可以给当前的对象加入文档说明

Suite Setup指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)

Suite Teardown指的是测试套件结束的时候就执行某个关键字

Test Setup指的就是案例启动的时候执行某个关键字

Test Teardown指的就是案例结束的时候执行某个关键字

Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可

Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败

Force Tags:在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元素设置的tags

Default Tags:默认标记,其实和Force Tags没啥区别的

Arguments:传入参数

Return Value:返回值

2.测试套件Text Edit区

测试套件测试用例文本信息

3.测试套件Run区

Execution Profile:选择运行方式,里面有pybot、jybot和custom script。默认pybot即可。

Start:运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。

Stop:停止案例。

Report和Log: 报告和日志,要运行之后才能点击。他们的区别,报告更多是结果上的展示,日志更多是过程的记录,更多使用的还是日志。

Autosave: 自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。

Arguments: pybot的参数(或者jybot等)。完整版的参数可以在doc命令行输入pybot.bat --help

Only Run Tests with these Tags: 只运行这些标记的测试案例。在case的setting里可以添加tag。

Skip Tests with these Tags: 跳过这些标记的测试案例。在case的setting里可以添加tag。

【2】测试用例工作区

1.测试用例Edit区

(1)settings

Documentation:文档,每一项都有。可以给当前的对象加入文档说明。

Setup指的就是案例启动的时候执行某个关键字。

Teardown指的就是案例结束的时候执行某个关键字。

Tags:标记某个测试用例。在Run区中Only Run Tests with these Tags和Skip Tests with these Tags,会通过这个标志位来识别是否运行或跳过用例。

Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。

(2)表格区

最重要的部分,编写测试用例。

第一列一般写的是关键词,关键词的来源包括BuiltIn库,第三方导入库,自己编写的导入库。

使用技巧:

通过ctrl+alt+space可以自动带出相关关键字。以及相关用法,里边有对入参的说明。

Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示关键字的相关用法。

第二三四五列,一般是入参,红色的表示必填的入参。浅灰色表示选填的入参。深灰色表示无需填写。

输入wait再同时按住ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。

对于已输入的关键字,忘了其用法,可以点击输入框再同时按住ctrl+alt+space键,即可查看该关键字的用法。

测试用例Text Edit区

测试用例Run区

三、Robot Framework库

BuiltIn内建库
首先先介绍下robotframework的库,通过点击F5快捷键,目前只有内建的库BuiltIn。

Evaluate 关键字:
如果你需要进行一些数值运算并得到结果,你就需要用到Evaluate关键字。Evaluate会把你想要计算的表达式直接传递给Python,并把Python的计算结果返回给你。这是最经常要用到的。

Should 系列关键字:
Should系列关键字是Should打头的一系列关键字。

Should Be Empty
Should Be Equal

Should Be Equal As Integers 
Should Be Equal As Numbers

Should Be Equal As Strings
Should Be True

Should Contain
Should Contain X Times
Should End With
Should Match

Should Match Regexp 
Should Not Be Empty
Should Not Be Equal
Should Not Be Equal As Integers
Should Not Be Equal As Numbers
Should Not Be Equal As Strings
Should Not Be True
Should Not Contain
Should Not End With
Should Not Match 
Should Not Match Regexp
Should Not Start With
Should Start With
这些关键字都是用作判断时用的,每个用例都会用到,比如我们的执行结果得到了一个字符串,我们要判断这个字符串要与一个预期字符串相等,否则用例就无法通过,这时候,肯定会用上Should Be Equal As String

关键字,其它关键字我们通过关键字的名字就能顾名思义,知道它的作用。点击F5可查看某个函数的具体用法。

如Should Contain有两个入参,下方还有具体的说明。
Should Contain item1 item2  :item2要在item1里,比如说item1为hello  item2为he  则通过。


Convert To系列关键字:

Convert To Binary
Convert To Boolean
Convert To Hex 
Convert To Integer 
Convert To Number 
Convert To Octal 
Convert To String
做类型转换,将某个值转换为相对应的类型。


Run keyword系列关键字:

Run Keyword If
Run Keyword If All Critical Tests Passed
Run Keyword If All Tests Passed
Run Keyword If Any Critical Tests Failed
Run Keyword If Any Tests Failed
Run Keyword If Test Failed
Run Keyword If Test Passed
Run、Keyword If Timeout Occurred
这些关键字能根据一个判断条件的真假来看是否执行关键字。一般使用这些关键字来实现高级语言中的ifelse功能。最常用的是Run Keyword If 和 Run Keyword unless 他们俩实现的效果正好相反。

Exit For Loop关键字:
用作退出循环,一般和Run Keyword If关键字联合使用,来实现条件退出。


Wait Until Keyword Succeeds关键字:
这是一个将异步调用变为同步调用的关键字。举一个例子:如果call某个WebService,并且需要得到返回结果才能做下一部操作。我们就会用到这个关键字。


 
日期相关的关键字GetTime。
测试暂停的Sleep等。都相当有用。
RF目前仅有2个内置关键字:FOF 和 IN,来实现循环结构。功能还是比较弱的。
了解关键字的用法,直接点击F5,在Search term中,输入关键字,按回车键,可以在下方对这个关键字的入参用法进行说明。

第三方库

只有内建的库往往还不能满足需求,还可以导入第三方库,如操作页面的Selenium2Library。第三方库,主要是[PYTHON目录]\Lib\site-packages里的库,一般安装的库会在此目录下。在测试套件下的工作区的右方,点击Library,在弹出框的name栏输入“Selenium2Library”,点击OK即可。
当工作区的Library那一行黑色显示,说明导入成功(如果显示红色说明导入不成功,可自行百度解决)。
点击F5快捷键查看,可查看多了一个Selenium2Library的库。

selenium2关键字:

1.Open Browser  打开浏览器

2.Close Browser  关闭浏览器

3.Maximize Browser Window 浏览器最大化

4.Get Window Size设置浏览器宽 高

5.Get Window Position设置浏览器位置

6.Input Text 文本输入

7.Click Button 按钮点击

8.Click Element 点击元素

9.Wait Until Element Contains  等待元素出现

  需要传入元素定位,等待时间以及错误信息

10.Get Title 获取当前页面的title

11.Get Text 获取文本信息

12.Get Element Attribute 获取元素属性 Get Element Attribute  id=kw@name     先定位元素然后获取@后面的属性的值

13.断言:

可以看到有判断是否为空,是否相等,是否为真,是否包含等等。

14.表单切换和退出

15.下拉框的相关关键字
有多选按钮,表,按表下标,按表的值等等。

AppiumLibrary常用关键字

1.实用函数

关键字 含义 实例 备注
Click Button 点击按钮 Click Button 注销 这里“注销”的class属性,必须是Button
Click Element 点击元素 Click Element [locator] Locator可以是resource-id,也可以是xpath;但必须是当前页面唯一存在的;一般用该关键字可以完成所有元素点击
Click Text 点击文字 Click Text 我的 “我的”需要是当前页面唯一存在的
Input Text 在指定元素中输入文本 InputText [locator] 111111 Locator可以是resource-id,也可以是xpath
Swipe 滑动屏幕 Swipe 1000 1800 100 1800  
Get Text 获取某标签内容 ${account} Get Text  [locator]   获取内容后存储到指定变量中,从而在后续脚本中调用该内容

2.校验函数

关键字 含义 实例
Element Should Be Enabled 检查元素是否可用/可见 Element Should Be Enabled  [locator]
Page Should Contain Element 检查界面包含某些元素 Page Should Contain Element   [locator]
Page Should Contain Text 检查界面包含某些文字信息 Page Should Contain Text  预约挂号
Page Should Not Contain Element 检查界面不包含某些元素 Page Should Not Contain Element  [locator]
Page Should Not Contain Text 检查界面不包含某些文字信息 Page Should Not Contain Text  预约挂号

3.等待函数

关键字 含义 实例 备注
Wait Until Page Contains 等待直到界面中包含某些文字,才进行下一步 Wait Until Page Contains  预约挂号 默认等待时间为5s
Wait Until Page Contains Element 等待直到界面中包含某些元素,才进行下一步 Wait Until Page Contains Element   [locator] locator可以是resource-id,也可以是xpath
Wait Until Page Does Not Contain 等待直到界面中不包含某些文字,才进行下一步 Wait Until Page Does Not Contain  预约挂号  
Wait Until Page Does Not Contain Element 等待直到界面中不包含某些元素,才进行下一步 Wait Until Page Does Not Contain Element  [locator]  

4.其他函数

条件判断

关键字:Run Keyword If
用法:
Run Keyword If
…ELSE IF   
…ELSE

检查某关键字的返回状态
关键字:Run Keyword And Return Status
返回值:布尔值,True False
通常和Run Keyword If关键字搭配使用 

${isMessage} Run Keyword And Return Status Wait Until Page Contains Element [locator]
Run Keyword If ${isMessage} do something  

含义  :判断当前界面中是否存在取消按钮;如果存在,则do something

For循环
关键字:For
实例:
1)For循环单独使用时

2)For循环嵌套Run Keyword If语句,退出循环

自定义关键字
创建方法:测试项目-New Resource-New User Keyword

导入自己编写的库
比如说有些功能想自己编写,比如说如下代码,想要导入实现获取验证码的功能,文件名为clay.py(英文格式命名),该文件保存在D:\Python27,此时需要将该路径添加到[python安装路径]\Lib\site-packages下的后缀名为pth的文件(英文格式命名)中。

注意,在clay.py文件中编写函数描述时,前面要加u,否则F5查看时,会乱码。

欢迎大家一起加入讨论!!!

猜你喜欢

转载自blog.csdn.net/wxb880114/article/details/81944740