NXP电子元件

rf操作 Robot framework(RF)基本使用

小编 2025-02-24 NXP电子元件 23 0

Robot framework(RF)基本使用

Robot framework(RF)基本使用

上一章我们介绍了如何搭建RF+WD的基本环境,那么这一章主要介绍RIDE的基本使用。

1.1 第一个测试项目

3.1.1 第一个测试用例

创建项目涉及到一系列相关的操作,包括新建项目、新建测试套件、新建测试用例等,下面用一个例子来介绍RIDE的这方面的使用。

创建项目步骤:

1、单击“File;New Project” 创建项目。

2、在弹出的新建项目对话框中输入项目名。

A、 Name:项目名

B、 Parent Directory:项目父文件夹,可以通过“Browse”更改

C、 Type:项目的类型(对于项目我们建议Type选择Directory)

File:把项目作为一个文件管理

Directory:把项目作为一个目录管理

File下面可以直接创建测试用例,Directory下面不可以直接创建用例,可以创建测试套件(Suite)

D、 Format:文件的类型

E、 Created Path:如果Type选择的是File,created path保存成”项目名.txt”

如果Type选择的是Directory,created path保存成“项目名\__init__.txt”

3、项目的编辑区

4、新建Test Suite。

5、在编辑区,可以增加库。测试web项目需要增加selenium库。

6、写入suite名,Type选择File。

7、新建测试用例。

8、填入用例名。

9、编辑测试用例。

10、在表格中编写测试用例。

11、执行测试。

快捷键按F8

3.1.2 从F5 开始学习

Robot Framework 并没有像其它框架一样提供一份完整的API 文档,所以,我们没办法通过官方API文档进行习。RIDE 提供了F5 快捷键来打开帮助文档。

【search term】: 用于搜索关键字。

【source】:用于选择相关库,默认在所有库下搜索关键字。

3.1.3 测试项目与测试套件的概念

如果你查看当前所创建的项目会发现,“测试项目”是一个目录。

“测试套件”则是一个txt 文件。

“测试项目”和“测试套件”本质上并没有什么区别,如果你愿意,也可以把测试项目创建成一个文件:

如果你把“测试项目”创建成一个文件后,那么在这个“测试项目”下就不能再创建“测试套件”了,只能创建测试用例。

除非我们所创建的“测试项目”非常小,只需要几个用例。一般情况下,我们会选择将其定义成一个目录,这样它就可以分成多个套件,套件可定义为不同的业务,不同的业务下再分用例,结构会更加清晰。

当然,你同样也可以把“测试套件”创建成一个目录。

如果你把“测试套件”创建成了一个目录后,就不能直接在其下面创建用例了,还需要再创建的“File”类型的“子测试套件”。说白了就是用例只能创建在file 类型的套件中。

下面用一张图来表述他们的关系:

1.2 Edit 标签

下面我们来看一看测试项目和测试套件所提供的Edit 标签。

从而“测试项目”和“测试套件”所提供的Edit 标签的功能也可看出两者是一样的。

测试项目图如下:

测试套件图如下:

在Edit 标签页中主要分:加载外部文件、定义内部变量、定义元数据等三个部分。

(1)加载外部文件

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

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

Add Variables:加载变量文件。

(2)定义内部变量

Add Scalar:定义变量

Add List:定义列表型变量

(3)定义元数据

Add Metadata:定义元数据。我是直接翻译的,这个是新增加的部分,大概看了一下作用是在report和log 里显示定义好的内容,格式和document 一样。

3.2.1 导入库

点击Edit 标签页右侧的“Library”按钮,来添加库。在添加库之前,首先库已经在Python 下进行了安装。如,添加“Selenium2Library”库。

如果添加的库不存在或库名错误,将会红色显示,黑库正常表示正常。

如果你是在“测试套件”中添加的库,那么这个库中所提供的关键字可以被当前测试套件下的用例使用。

如果你是在“测试项目”中添加的库,当前项目下的测试用例不能使用库中的关键字,需要在用例相应的“测试套件”中再次添加库。

现在按F5 就可以查看库中所提供的关键字。

3.2.2 导入资源

点击Edit 标签页右侧的“Resource”按钮来添加资源。这个资源一般为项目关的文件。比如,项目的自定义关键字文件。

下面我们就来添加一个“mykeywork.txt”文件。

关于添加资源的作用域与库一样。我这里是添加到的测试套件中,那么它的作用域就是当前测试套件下的所有用例。

查看RIDE 左侧项目列表,会发现“External Resource”下多了一下“mykeywork.txt”的资源。展开关键字会看到文件中定义的打开浏览器、最大化浏览器、输入用户名、输入密码、点击登录、关闭浏览器等关键字。导入资源之后就可以在用例中使用这些关键字。

3.2.3 定义变量

点击Edit 标签页右侧的“Add Scalar”按钮来创建变量。这里创建的变量可以被整个测试套件中的用例所使用。也可以认为是一个“公共变量”。

Name 用于定义变量名:${url}

Value 用于给变量赋值。http://127.0.0.1:8090/recruit.students/login/view

下面就可以在测试用例中来使用这个变量。

用例中是两个打印信息,分别使用了${url}变量。

相信从用例的执行结果中我们已经体会到了“公共变量”的作用。

3.2.4 定义列表变量

列表变量可以用来定义一维或二维数组。下面我们就来创建一个列表变量。点击Edit 标签页右侧的“Add List”按钮来创建登录用户的一组变量@{username}

Name 定义变量名为:@{username}

Value 填写列表变量的值:admin、zhangsan、lisi、wangwu。

在测试用例中可以对这个一维数组进行遍历。

运行结果:

1.3 Text Edit 标签

我们在Edit 标签页完成的工作,都可以在Text Edit 标签页上完成。它们之间是对应关系,Edit 可视化的提供的按钮输入框,对于用户来说更容易知道我要怎么做;而在Text Edit 中只是一个空当当的文本,我们跟本不知道如何下手。

好在我们已经在Edit 中做了很多事情。切换到Text Edit 将会看到这些信息的展示。

或者切换到“D:\project\Educational\test_project1”目录下,通过记事本打开“Selenium2Library_库的关键字练习.txt”。

测试用例的本来面目也是这个样子的,只是在RIDE 中对它进行的“美化”。

其实在这个在Text Edit 下或第三方编辑器下编写Robot Framework 测试的效率要远远高于Edit 标签中的“填表格”式编写。读者可以在两种标签页之间切换来提高用例的开发效率。

1.4 Run 标签

3.4.1 导入库

下面是Run 标签的截图:

第一眼看上去,Run 标签提供了丰富的操作和日志。按照截图我们依次来说明Run 标签上的按钮和输入框的作用:

【Execution Profile】:选择运行方式,里面有pybot、jybot 和custom script。其中我们默认是用pybot来运行案例,pybot 的运行Python 编译器完成。jybot 需要安装Jython 的支持。custom script 是选择自定义的脚本来运行。

【Start和Stop】:用例的运行和停止。

【Report和Log】:报告和日志,要运行之后才能点击。他们之间的区别:报告更多是结果上的展示,日志更多是过程的记录,在测试用例调试的过程中更多使用日志来查看执行错误。当只想知道测试用例的最终执行情况时用报告。

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

【Arguments】:pybot 的参数(或者jybot 等),可以在这里输入pybot 的命令完成相应的操作。

【Only Run Tests with these Tags】:只运行这些标记的测试案例。

【Skip Tests with these Tags】: 跳过这些标记的测试案例。

下面的两个区域,中间区域记录用例的执行过程,底部的区域输出用例的执行结果。

3.4.2 运行与停止

在Run 标签页提供了运行与停止的按钮,使用很简单。点击“运行”按钮就可以运行,在C:\Python27\Lib\site-packages\robotide\run 目录下,有个process.py 文件,RIDE就是通过这个文件去执行测试的,大家如果想了解原理,可以去读下相关代码。

3.4.3 报告与日志

当用例运行结束,Robot Framework 生成三个文件:output.xml、log.html 和report.html。

output.xml 记录的测试结果是xml 文件,这个文件不够直观。根据特定的需要可以编写脚本读取xml文件并生成特定的测试报告。

相比较而言log.html 和report.html 报告要直观得多,因为是html格式。

查看log.html 文件,点击Run 标签而上的“Log”按钮,通过默认浏览器打开。

在log.html 文件中可以查看用例执行的每一步,适合跟踪定义问题。

查看report.html,点击Run 标签而上的“Report”按钮,通过默认浏览器打开。

report.html 用于最终结果的展示,适合了解测试用例的执行情况:测试了哪些模块,用例数、失败率等。

3.4.4 筛选执行用例

这一节来探讨一下,几中方式可以筛选要运行的运用例。

第一种:勾选

这种方法最简单和直观,要运行哪条用例就勾选哪一条。如果全部不勾选,点击“运行”按钮会运行所有用例。

也可以在“测试套件”上右键选择:

Select All Test:选择当前套件的所有用例。

Select Only Failed Test:选择当前套件下运行失败的用例。

Select Only Passed Test:选择当前套件下运行成功的用例。

对于一个测试套件下有几十上百个用例来说,这几选项将非常有用。

第二种:用命令

这就用到Run 标签中的Arguments 功能。

在Arguments 的输入框内输入“-t test_add_list”。点击“Start”按钮,只执行了-t test_add_list 这一条用例。

Arguments 能做的事情可不止于此。想了解更多多命令。可以在cmd.exe 下执行“pybot.bat --help”。

第三种:筛选标记

这种方式就非常有意思的,对于不同的人来说会有一些标记,比如某富二代的标记就是“任性”。对于用例来说也可以打上标记。比如“重要”、“一般”、“基础”等。

点击某个用例,你会看到“Setting>>”的按钮,点击按钮展开:

在最下面将会看到“Tags”的选项,在“<Add New>”的输入框内输入“v1.0”。这条用例就打上了版本“v1.0”的标记。

现在切换到Run 标签,我要运行带“v1.0”标记的用例了,如何去做了?这就要用到:

Only Run Tests with these Tags:只运行这些标记的测试案例。

Skip Tests with these Tags: 跳过这些标记的测试案例。

因为“test_add_list”被打上了“重要”的标记,所以它被执行了。

对于一个用例来说,我们可以为它添加多个标记。勾选“Skip Tests with these Tags”选项可以跳过某些标记的用例。

3.5 Settings

不管是测试套件还是测试用例都会有一个“Setting>>”的按钮,因为它默认是被折叠起来的,所以,一般不太容易发现它,更不知道点击它之后是可以展开的。

3.5.1 测试用例的Settings

点击测试用例上的“Settings>>”按钮,会看到下面的选项。

Documentation:用于描述用例的一个小文本,如果是URL 地址转换为可点击的链接。

Setup 和Teardown:如果你了解unittest 单元测试框架的话,一定对这两个单词不陌生。

setUp 用于设置初始化工作,在每一个测试用例前先被执行

tearDown 方法在每个测试方法执行后调用,这个方法用于完成测试用例执行后的清理工作,如执行

“close browser”关闭浏览器等。

TimeOut:用于设置用例的超时时间。如“1 min 10s”、“ 2 hours”等。

Template:指定模板使用的关键字。

Tags :用于给用例添加标记。在上一小节中有用到这个功能。

3.5.2 测试套件的Settings

这里的Setup 和Teardown 分测试套件的和测试用例的。“Suite Setup”和“Suite Teardown”用于当前套件的开始和结束所要做的事情。“Test Setup”和“Test Teardown”会作用于套件下每一个测试用例开始和结束所要做的事情。

Force Tags:表示当前测试套件下测试用例强制的标记。

Default Tags:表示当前测试套件下测试用例默认的标记。

和三位摄影人聊聊RF镜头中那些意想不到的镜头

从2018年9月到现在,不到4年时间,RF卡口镜头总共发布了24支各款镜头以及2支增距镜,这个成绩可谓优秀。而且RF镜头一经推出,便好评如潮,在这众多RF镜头群中,摄影师有哪些意想不到的产品呢,色影无忌特别邀请了宠物摄影师张天航、风光摄影师冰河以及资深器材编辑刘念,一起聊聊RF镜头中那些意想不到的镜头。

张天航

英宠摄影创始人

视觉中国500px年度十佳摄影师

全球宠物摄影大赛DPY首位获奖的亚洲摄影师

冰河

风光摄影师

GettyImages、CFP签约摄影师

刘念

资深器材编辑

Q:您在使用EOS R系统时,给您最大的感触是什么?

张天航:我觉得这个系列的机型对于宠物摄影特别实用,简直就像量身定制的一样。比如多向翻转屏就是一个极其有用的设计,因为拍宠物大多时候都是需要低视角取景的,通过翻转屏来进行俯视观察会让摄影师的拍摄姿势轻松很多,否则的话就要整个人趴地上观察了。而当时市面上的无反相机几乎都是只有横向反转,没有竖向翻转功能,那么低角度拍摄竖构图的画面时取景就没那么方便了。再有就是对焦系统不断在升级,对焦速度越来越快,再加上现在的动物眼部识别自动对焦也是做到了很成熟的地步,对于拍摄活泼好动的宠物们来说非常好用。

EOS R5 / EF 8-15mm f/4L FISHEYE USM / F4 1/1250S ISO1000

摄影:张天航

冰河:在我第一次接触到EOS R系统是当年发布EOS R以及EOS RP的时候,那会儿我觉得佳能已经开始重视无反相机了,特别是后来佳能公布一系列后续的镜头计划的时候,我真的很激动。

刘念:我觉得EOS R系统的综合性能是很强的,作为单反时代的佳能用户,在EOS R系统上的操作是非常顺手的。特别是对于拥有大量EF镜头的用户来说,原厂转接的兼容性最佳。另外就是在R6和R5的身上可以和单反一样完成更多专业题材的拍摄,这对无反系统来说是非常重要的。

Q:到目前为止,EOS R系列相机中,哪一款给您留下的印象最深?

张天航:印象最深的就是我现在正在用的R5,除了上述优势以外,R5在连拍速度、像素方面也都很贴合我的需求。虽然市面上有连拍速度更快的机身,也有像素更高的机身,但我还是觉得R5的这个定位还是很适合宠物摄影师这个群体的,如果对像素要求不高的也可以考虑R6。

冰河:目前为止,给我留下印象最深刻的一台就是佳能EOS R3,因为当时我也参与了EOS R3的国内首测,我无法形容我第一次用到“真眼控对焦”时的震撼,我觉得这种对焦方式会对摄影产生很大的影响。

EOS R5 / RF15-35mm F2.8 L IS USM / F22 1/80S ISO800

摄影:冰河

刘念:对我来说印象最深的还是EOS R6。虽然R5拥有非常强的功能参数,但是R6这台机器对很多发烧友或者说爱好者来说是非常“香”的。从1DX Mark III机身上继承的CMOS和AF系统直接下放到万元机身上,是非常厚道的。特别是对于自媒体用户来说,4K 60P无裁切是非常抢眼的参数,同时2000万像素对图片摄影来说也足够使用。总对来说R6真的是一台综合性能很强的,同时普通用户又可以承受的出色机身。

Q:那到目前为止,RF镜头中,哪一款给您留下的印象最深?

张天航:RF50mm F1.2,这支头的画质很让人非常满意,而且即使用到F1.2的光圈,焦点处的锐度仍然很高,而且这支镜头在EOS R系列的机身上可以达到快而准的对焦,以前我用单反的时候是很少用50mm F1.4镜头拍宠物动态画面的,即使是慢速运动都会有很高的失焦率,但是现在用RF50 F1.2拍摄的时候我甚至可以拍摄跑动中的宠物。

冰河:因为我主要拍摄风光,所以除了广角之外,用得最多的就是中长焦,其中佳能 RF70-200mm F2.8 L IS USM给我留下了深刻的印象,除了画质优异之外,跟之前的EF 70-200mm F2.8 L IS III USM相比,体积重量减少了那么多,这让我感觉非常惊讶,后期我在实际拍摄中,特别是徒步旅拍中,小巧轻便的造型确实让我的拍摄轻松很多。

刘念:RF28-70mm F2 L USM这支镜头确实印象很深。首先从焦段上来说28-70属于传统大三元的最常用焦段。但是在尺寸和重量和传统单反的24-70mm F2.8都接近的情况下,佳能居然把光圈做到了F2,并且居然还保证了相当不错的分辨率。对于一支以“干活”为主定位的镜头是非常不错的。特别是对比如婚礼、人像写真、旅拍等题材对摄影师来说,我想这枚镜头是必须要考虑的。

EOS R5 / RF15-35mm F2.8 L IS USM / F13 1/80S ISO100

摄影:冰河

Q:那么在所有RF镜头中哪些镜头是您没有想到的?

张天航:RF28-70 F2,这支头和更为常见的24-70 F2.8这个镜头看似没有什么太大区别,一开始我不太理解为什么会出现这样一支头。后来用过以后感觉还挺爽的,尤其是需要提升快门速度的时和想要更浅景深的时候,RF28-70 F2都更有优势,而且成像质量也是好的没话说,预算够的话可以直接考虑上这个头了,至于广角端少的那一点焦段我觉得影响不大,如果我想要更大的视野或者强烈的透视感,肯定会直接用RF15-35mm了。

还有RF70-200mm F2.8的设计也是令我很意外的,这支镜头是我的必买镜头,也是我户外拍摄用到最多的焦段。有不少人吐槽RF这支头的外变焦设计,虽然我也是觉得这个设计挺出乎意外的,但是真的使用了一段时间后觉得也并没有什么不好,防尘防水性能还是不错的,而且颜值也很高,收起后还方便收纳。

冰河:佳能RF28-70mm F2 L USM 这支镜头是我没想到的,确确实实太厉害,变焦能做到F2.0的恒定光圈,这在以前真的很难想象,我经常会挂机这个镜头,拍产品、拍人像、扫街,完完全全可以把它当成一只定焦镜头来使用。

佳能600mm F11 IS STM这支镜头也让我很诧异,一般情况下这种超长焦价格都不便宜,佳能这次推出的这只600定焦只要4000元左右的售价,虽然光圈不大,但是对于很多打鸟和拍野生动物的用户来说确实是个福音。

刘念:没有想到的肯定是RF600和RF800 这两支镜头,对很多入门对生态摄影爱好者来说这两支镜头性价比非常出色。尽管光圈是F11,但是在体积和重量的控制上让可用性大大提升。

但最意外的镜头毋庸置疑应该还是佳能刚刚发布的RF5.2mm F2.8的这支VR镜头了。确实想像不到佳能会在无反系统上研发一枚VR镜头,但这枚镜头确实可以利用R5高像素和高视频分辨率的优势,完成VR视频的拍摄。出乎意料但又合情合理。

EOS R5 / RF70-200mm F2.8 L IS USM / F2.8 1/2000S ISO1000

摄影:张天航

Q:您怎么看待佳能推出的F2变焦镜头和F11定焦镜头?

冰河:我觉得佳能不仅仅是在不断创新,更是在极致的道路上不断探索的同时也听取了很多用户的意见,不管是RF28-70mm F2 L USM还是600mm F11 IS STM都有其可取之处,不同需求的用户会在这些镜头上找到属于自己的点。

刘念:我觉得佳能的策略非常清晰,无论是F2还是F11,都是为了能让更多用户接触到EOS R系统。F2的变焦镜头是在EOS R诞生不久推出的,也可以说是佳能为了EOS R系统树立的一个光学标杆,告诉这些专业的摄影师现在EOS R系统也可以完成商业的拍摄,你们无需担心我们在无反系统上的投入。而F11的定焦镜头就是RF600和RF800,这两枚镜头恰恰是让生态摄影走向更普通用户的产品。以往想要拍摄鸟类,长枪短炮必不可少,镜头起码万元起步,对很多入门用户来说望尘莫及。这两枚镜头的推出对这部分用户非常有吸引力。因此我才会说无论是F2还是F11都是佳能为了吸引更多人使用EOS R系统而诞生的产品。

Q:作为一直关注和使用佳能产品的摄影人,您是否觉得佳能在EOS R系统上更加激进?您怎么看待佳能的这种激进的做法?

张天航:没错,是挺激进的,这是好事,数码相机每年都有天翻地覆的变化,各种新技术层出不穷,不激进点又怎能走在前端呢。

冰河:在某些场景下,我觉得“激进”可能是一个贬义词或者中性词,但是对于相机研发来说,我就会觉得是一个褒义词,目前相机市场需要佳能这种“激进”的做法,我也更期待佳能的“激进”能带给我更多的惊喜。

刘念:激进是好的,最怕不够激进。现在智能手机对传统影像设备的影响已经彻底成熟了。智能手机的更新周期甚至是以月来计算的,因此传统影像品牌如果依然按照以往的开发节奏进行新品研发,必然会面对的是越来越成熟的手机影像技术。佳能近年无论是在产品参数还是功能设计上都尝试了很多激进的设计,有些经过尝试可能不尽如人意,但前提是一定要经过尝试才会得到答案。不够激进可能面临的就是竞争对手甚至跨行业对手的挑战,这对佳能来说我想是不可接受的。因此我才会觉得佳能的这些看似激进的产品实际上是在适应现在行业的节奏。

EOS R5 / RF15-35mm F2.8 L IS USM / F2.8 1/3200S ISO100

摄影:张天航

Q:如果后续佳能可以研发生产,有什么特别出人意料的镜头希望佳能推出吗?

张天航:我非常期待RF口的鱼眼镜头,这款镜头虽然比较小众,但是拍摄宠物有奇效。不管是利用鱼眼的广阔视野拍摄震撼效果的大场景还是近距离拍摄宠物们的“大头照”,都能让人眼前一亮。

冰河:我的本职工作还是风光摄影师,最近我对于星空摄影的兴趣非常大,所以我希望佳能可以推出一些大光圈超广角的变焦或者定焦镜头,这对于我拍摄星空来说非常重要。

刘念:其实我更希望佳能多推出一些F1.8甚至是F2的镜头。对很多成熟对摄影用户来说,可能已经渐渐过了追求大光圈的阶段。合适的光圈,合适的体积,出色的光学质量才是我们更需要的。F2甚至是F2.8的这些定焦镜头通常体积更小,光学素质也能相对控制到更加优秀。我更希望见到这些更加“精巧”的镜头出现。

EOS R5 / RF15-35mm F2.8 L IS USM / F2.8 30S ISO3200

摄影:冰河

本文为广宣内容

相关问答

rf什么意思_作业帮

[最佳回答]rf1、abbr.无线电频率(radiofrequency)adiofrequency[英][ˈreidiəuˈfri:kwənsi][美][ˈredioˈfrikwənsi]n.无线电频率;...

创维数字电视RF输入口怎么用?

RF表示的是射频输出,射频传输是将图像与伴音引号调制合并传输的一种办法,就像传统的闭路电视。这也就是说机顶盒后面的RF输出端口是环形输出,没有经过机顶盒...

rf型热力膨胀阀的使用方法?

注意事项:1.在安装和维护RF型热力膨胀阀时,应严格按照相关规定和说明进行操作。2.在使用过程中,应注意保证制冷系统的稳定性和安全性。3.如需更换RF型...

射频线怎么拧到机顶盒上?

由于电视机只有射频输入端口,而机顶盒通常是AV或者HDMI输出的;所以两者想要连接,是需要购买一个AV转RF的转换器的;连接方法如下:1、现将室外引入的电视信号...

rf输入是什么?

RF输入是一种常见的电子设备输入接口类型,用于接收无线电频率信号。RF是“RadioFrequency”的缩写,意为“无线电频率”。RF输入通常用于接收和处理无线电频率...

RF在plc中是什么意思?

RF在PLC中是指"RadioFrequency",即无线射频通信技术。在PLC系统中,RF通常用于实现无线数据传输和通信。通过RF技术,PLC可以实现远程监测和控制,无需使用有...

仪器分析中Rf什么意思?

仪器分析中Rf是无线射频的意思。RF(无线射频识别(RadioFrequency))一般指无线射频无线射频是20世纪90年代兴起的一种非接触式的自动识别技术。射频技术相...

ogp智能射频仪使用方法?

OGP智能射频仪是一种用于测试无线电信号的设备,主要用于检测无线电信号的强度、频率、调制方式等参数。以下是OGP智能射频仪的基本使用方法:连接天线:将OGP智...

ogp射频仪使用方法?

OGP射频仪通常用于测试射频信号和微波信号的参数,包括频率、功率、增益、带宽等。以下是OGP射频仪的基本使用方法:准备测试对象,例如无线电设备或射频电路板...

猜你喜欢