700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Robot Framework 自动化测试框架核心指南-初识Robot Framework(学习笔记2)

Robot Framework 自动化测试框架核心指南-初识Robot Framework(学习笔记2)

时间:2018-07-09 21:42:38

相关推荐

Robot Framework 自动化测试框架核心指南-初识Robot Framework(学习笔记2)

初识Robot Framework

1.1如何创建一个自动化测试项目1.1.2 创建测试套件1.1.3 创建测试用例1.2 Robot Framework基础关键字1.2.1 如何搜索Robot Framework的关键字1.2.2 关键字log1.2.3 如何在用例中定义一个变量1.2.4 如何快速查询某一个关键字的API说明1.2.5 如何快速补全关键字1.2.6 如何定义一个列表1.2.7 如何定义一个字典1.2.8 如何拼接两个字符串1.2.9 如何使用for循环1.2.10 如何中断for循环1.2.11 Run Keyword If判断的使用1.2.12 Comment关键字的使用1.2.13 Return From Keyword和Return FromKeyword If关键字的使用1.3 Robot Framework断言关键字1.3.1 Should Be Equal关键字的使用1.3.2 Should Be True关键字的使用1.3.3 Should Contain关键字的使用1.3.4 Should End With关键字的使用1.3.5 其他常用断言关键字1.4 BuiltIn库剩余关键字1.4.1 常用转换类型关键字1.4.2 常用Get类型关键字1.4.3 常用Import类型关键字1.4.4 常用Set类型关键字1.4.5 常用Run Keyword类型关键字1.4.6 其他关键字

①Robot Framework基于Python编程语言设计的、可扩展的、关键字驱动模式的测试自动化框架,具备良好的可扩展性,可以通过XML-RPC服务扩展支持其他的常用编程语言,可以同时测试多种类型的客户端或者接口,可以支持进行分布式测试执行。

②Robot Framework特点

a.易于使用,采用表格式输入语法以及统一的测试用例(Test Case,也叫测试案例)格式。

b.重用性好,可以利用现有关键字来组合新的用户自定义关键字。

c.支持资源文件,支持多种变量类型,包括字符串变量、List列表变量、Dictionary字典变量等。

d.测试用例执行结果报告和日志采用HTML格式,易于阅读和邮件转发。

f.支持Web界面测试、Web接口服务测试、GUI测试、多种终端测试。

g. 支持多种数据库的操作(关系型数据库、非关系型数据库)

h. 易于扩展自定义的Lib库,可以通过Python或者Java等其他开发语言来动态扩展Lib库。

集成了很多流行的自动化测试工具(Appium、Selenium)

①通过Jython的方式->Robot Framework自动化测试框架无缝地与Java语言进行完美集成.

②通过XML-RPC远程调用协议来支持Java或者C++等流行的编程语言,使对Python语言不熟悉的编程爱好者也可以编写自定义的Library库。

③Robot Framework->Python语言实现了自动化测试用例编写的客户端RIDE可以非常简单地完成自动化测试用例的编写,也可以使用RIDE完成用户层面的关键字API的封装,使得不懂任何编程语言的自动化测试爱好者也可以封装自己的API关键字。

④Robot Framework还提供了如下插件:

1.1如何创建一个自动化测试项目

用RobotFramework的客户端工具Ride来实现

①可访问官网:/project/robotframework-ride/下载,然后离线安装即可

②在windows的cmd命令下,在线自动安装,(我最喜欢这个)

pip install robotframework-ride

③启动ride(敲黑板)

a. 找到你的python安装的目录,进入对应的Scripts文件夹下,看到ride.py文件,然后在cmd窗口进入到该文件夹下,敲命令,

python ride.py即可启动

我的是用Anaconda3安装的python,所以我的对应路径如下:

E:\Anaconda3\Scripts

看我的操作,我再cmd命令下启动ride

④进行相关配置操作

选择菜单栏File→New Project,在Name文本框中输入项目名称,此处Type我们选择Directory,单击OK按钮,即可创建成功

1.1.2 创建测试套件

在上面创建好的项目,右击鼠标键,选择New Suite选项,输入测试套件名称,即可创建成功,

1.1.3 创建测试用例

在上面创建好的测试套件,右击,选择New Test Case选项,输入用例名称,单击OK按钮,即可创建成功。

创建成功后如下:

1.2 Robot Framework基础关键字

1.2.1 如何搜索Robot Framework的关键字

①常规操作

选择菜单栏中的Tools→Search Keywords选项→弹出关键字对话框;

②快速操作

直接按快捷键F5->弹出关键字对话框;

温馨提示:关键字对话框就类似于提供了一个关键字的API功能(提供了关键字的名称、关键字的来源库、关键字的使用描述和关键字的参数)。

1.2.2 关键字log

①log关键字可以理解为python语言中的print函数,能够输出我们想要的内容;

②在test case中输入如下参数;

③单击菜单栏Tools→Run Tests(或者快捷键F8)来执行这条测试用例;

④执行完成后,切换到Run标签,可以看到用例执行的结果。通过运行结果可以看到输出了我们想要输出的信息

经过度娘的一顿搜索,最后试试这个方法吧,看看行不行?

1.通过如下命令确认.

Python是安装成功的,但是提示pybot不是内部或外部命令,这时去确认python安装目录下的\ Scripts下是否有pybot.bat这个文件,这才是解决这个问题的重点。在该目录下自己创建一个pybot.txt的文件,输入下面内容并保存修改为.bat后缀

@Echo off

python -m robot.run %*

弄好了,在让我们运行一下吧,看看

运行后的结果还是不行,继续找解决办法;太气愤了,估计是用anaconda这个东东导致的,我决定把环境变量中用anaconda来运行python的配置信息去掉,直接配置python的环境变量,再试试;

结果还是一样的报错,哎哎哎!

最后研究了一下,启动ride的时候有个提示:

Starting from RIDE 1.5, Robot Framework standard libraries are no longer included in RIDE installation. In order to have intellisense features work with Robot Framework standard libraries, it must be installed separately. See the official website for installation instructions.

这意思是还得单独安装robotframework,我试试

pip install robotframework 安装成功,在启动运行试试

运行成功了,我天啊,原来是这么回事哎,完美解决;

执行结果如下:

1.2.3 如何在用例中定义一个变量

通过Set Variable来定义一个变量如下操作:

执行一下看看结果:

1.2.4 如何快速查询某一个关键字的API说明

选中关键字,同时按住Ctrl+Alt组合键,即可显示该关键字的帮助API以及使用示例

显示结果如下:

1.2.5 如何快速补全关键字

键盘输入关键字的前缀,然后同时按住Ctrl+Alt+空格键,即可快速补全某个关键字;

类似如下:

1.2.6 如何定义一个列表

我们所说的列表,等同于python中的列表,java中的List;

①使用Create List来创建一个列表,比如我们定义一个列表list1,并且在创建列表时就添加3个元素。然后使用log关键字将这个列表中的元素全部输出;

输入值如下:

点击菜单栏中Tools->Run Tests 运行看看结果(后续说运行就是指这个操作):

汉字乱码了,去度娘找解决办法;

解决方案:

找到Python路径下的testrunnerplugin.py文件,如我的文件路径:C:\Python\Python37\Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py

将第565行的encoding[‘SYSTEM’]改为encoding[‘OUTPUT’],如下图

修改后保存,重新启动RIDE运行,查看控制台信息,显示中文正常。

1.2.7 如何定义一个字典

我们所说的字典,等同于python中的字典,java中的Map;

①使用Create Dictionary来创建一个字典,比如我们定义一个字典Dict1,并且在创建字典时就添加两个键值对,然后使用Log Many关键字将这个字典中的内容全部输出

操作步骤如下:

运行结果:

1.2.8 如何拼接两个字符串

通过Catenate来拼接字符串,比如将“Hello”和“Robot”这两个字符串拼接起来并且输出:

操作步骤:

执行结果

1.2.9 如何使用for循环

使用for循环来做遍历处理

例子:用for循环对一个列表进行遍历,并且输出该列表中的每一个元素。例如,list2中有a、b、c、d四个元素,循环遍历输出这些元素

操作步骤:

执行结果:

这个ride是1.7.4.2版本的和以前的:for循环不一样了,这本书中用的还是老的,所以如果你用的是1.7.4.2版本的那么就的按照我上面的来for循环才可以,另外我在调试上面的代码时候,出现了很多问题,如果你也出现问题,请耐心处理,跟我上面保持一致就应该会成功;

执行结果:

1.2.10 如何中断for循环

使用Exit For Loop If关键字来中断一个for循环。例如,list2有a、b、c、d四个元素,循环遍历输出这些元素,当输出到元素c时跳出这个循环

执行步骤:

执行结果:

1.2.11 Run Keyword If判断的使用

Run Keyword If是一个常用的用来做逻辑判断的关键字,意思是如果满足了某一个判断条件,就会执行关键字。我们在list3中放入0、1、2三个元素,然后遍历list3,判断当取到元素0时,输出“男生”

执行步骤:

执行结果:

1.2.12 Comment关键字的使用

Comment关键字是用来做注释使用的,用来临时注释掉某一行自动化脚本,让其暂时不运行,也可以用来做解释说明使用

在Robot Framework的RIDE中,可以选中某一行脚本,右击鼠标键,选择Comment Rows选项,然后可以对选中的那一行脚本做注释,注释完成后,这一行脚本将不会再被运行。

运行结果打印“循环外层”

下面注释掉这一行:

选中注释的一整行,右键;

看看执行结果是不是不执行这一行;

取消注释,就选中上面的:unComment rows即可;

1.2.13 Return From Keyword和Return FromKeyword If关键字的使用

Return From Keyword关键字和很多编程语言中的return关键字一样:

(1)脚本执行到该关键字后,会直接返回,不会再执行后面的脚本。

(2)返回时会带有对应返回值。调用者可以通过不同的返回值来建立不同的判断分支。

(3)Return From Keyword关键字一般用于用户自定义关键字中。用户自定义关键字相当于是用系统已有的关键字来封装出一个新的关键字。

(4)Return From Keyword If关键字用if条件来进行判断,当满足指定的if条件后,就执行return返回。返回时和Return From Keyword关键字一样,可以指定返回的具体值。

我们编写了一个自定义关键字,其中定义了一个入参valueReturn,然后通过执行ReturnFromKeywordIf′{valueReturn},然后通过执行Return FromKeyword If 'valueReturn,然后通过执行ReturnFromKeywordIf′{value}’==’${valueReturn}’ ${value} 来判断我们需要返回的值,

执行步骤:

新建一个自定义关键字

如下的操作都是在上图中自定义关键字中定义的

然后新建一个testcase9来调用上面的内容看看

看看执行结果

1.3 Robot Framework断言关键字

1.3.1 Should Be Equal关键字的使用

Should Be Equal关键字一般用来判断实际结果是否和预期结果相等

举例:将变量value的值设置为1,使用ShouldBeEqual关键字来判断{value}的值设置为1,使用Should Be Equal关键字来判断value的值设置为1,使用ShouldBeEqual关键字来判断{value}是否等于2,若断言失败,则输出实际值为${value},和预期不符合

执行步骤:

执行结果

1.3.2 Should Be True关键字的使用

Should Be True关键字用来判断返回值是否为True,例如我们将变量value的值同样设置为1,使用ShouldBeTrue关键字对表达式′{value}的值同样设置为1,使用Should Be True关键字对表达式'value的值同样设置为1,使用ShouldBeTrue关键字对表达式′{value}’==‘2’ 进行True和False的判断,由于我们设置的值为1,因此很明显会判断失败

执行步骤:

执行结果

1.3.3 Should Contain关键字的使用

Should Contain 关键字用来判断某个字符串中是否包含了我们预期需要的字符或者字符串,例如我们将变量str的值设置为RobotFramework,使用ShouldContain关键字来判断{str}的值设置为RobotFramework,使用Should Contain关键字来判断str的值设置为RobotFramework,使用ShouldContain关键字来判断{str}是否包含“Hello”这个字符串。很明显,我们执行的结果肯定会判断失败

执行步骤:

执行结果:

1.3.4 Should End With关键字的使用

Should End With关键字用来判断某个字符串是否以我们预期指定的字符串来结束,例如我们同样将变量str的值设置为RobotFramework,使用ShouldEndWith来判断{str}的值设置为RobotFramework,使用Should End With来判断str的值设置为RobotFramework,使用ShouldEndWith来判断{str}是不是以“Hello”这个字符串来结束。很明显,我们执行的结果肯定会失败,

执行步骤:

执行结果:

1.3.5 其他常用断言关键字

Robot Framework中还提供了大量其他的断言关键字

1.4 BuiltIn库剩余关键字

1.4.1 常用转换类型关键字

Robot Framework中提供了很多类型转换关键字

1.4.2 常用Get类型关键字

1.4.3 常用Import类型关键字

1.4.4 常用Set类型关键字

1.4.5 常用Run Keyword类型关键字

1.4.6 其他关键字

至此,第一章学习完毕!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。