笔者接着 RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作) 继续分享robotframework 对数据库中的MongoDB的详细操作. MongoDB是非常常用的一个非关系型数据库,在RobotFramework中,也提供了对MongoDB数据库测试操作的支持.我们可以通过在浏览器中访问github的网站地址 https://github.com/iPlantCollaborativeOpenSource/Robotframework-Mon…
在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装DatabaseLibrary库,在浏览器中访问http://franz-see.github.io/Robotframework-Database-Library/ 页面,即可以看到该库的相关安装说明和API介绍. 在使用DatabaseLibrary库时,需要在测试套件中,预先导入该库,才可以在用例…
在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github.com/appium Appium的下载地址:http://appium.io/downloads.html,可以下载最新的安装版本和响应的Library库 Appium的相关介绍文档:http://appium.io/slate/cn/master/ Appium的RobotFramework-a…
使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提供了RobotFramework-EclipseIDE插件,可以支持Eclipse,插件的访问地址为https://github.com/NitorCreations/RobotFramework-EclipseIDE,可以通过该地址下载插件. 在这里我们以Eclipse with PyDev插件的…
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试中 用的最多一个框架,基于Python编程语言设计的可扩展的关键字驱动模式的测试自动化框架,具备良好的可扩展性,可以通过xml-rpc服务扩展支持其它的常用编程语言,可以同时测试多种类型的客户端或者接口,可以支持进行分布式测试执行. Robot Framework具体如何的特点: 易于使用,采用表格…
本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramework中如何使用Selenium进行自动化测试. 本文章节目录: 1.Get Value 2.Get Webelements和Get Webelement 3.Get Window Titles 4.Go Back 和 Go To 5.Get List Items 6.Get Selected List…
对于RobotFramework自动化测试框架,我这里会从三个单元进行阐述,希望能对你有帮助. RobotFramework简介 RobotFramework是什么? Robotframework 是由python编写的,一个开源的基于关键词驱动的自动化测试框架,它可以做基于UI或者接口的验收测试,有着非常简单易用的语法.它的一大特点就是可以使用java&python去扩展自定义一些测试库以及基于一些已有的关键词自定义一些高级关键词,这就意味着如果官方以及第三方提供的一些测试库没法满足项目的测试…
Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍Webdriver,Webdriver已经被很多浏览器所兼容.WebDriver在自动化脚本和浏览器之间充当的角色和之前介绍的Appium很像. 由于现在很多的浏览器都已经主动支持和兼容了WebDriver,所以Webdriver在启动后,会确认浏览器的native component是否存在可用而且…
关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Application. Close All Applications 关闭掉当前已经打开的所有的APP Application,该关键字不需要接收任何的参数. Background App 让当前APP Application 运行在后台,该关键字接收一个参数[后台运行的时间],示例: Background App…
扩展测试库 扩展测试库可使用python或java语言编写.后直接导入需要使用的测试用例文件即可. 具体的实现和操作,后续补充.请参考官网. 资源文件 在资源文件中定义用户关键字,它提供了共享机制,即:定义在资源文件中的用户关键字在导入后即可使用.同时,该资源文件中从其它文件(测试库/资源文件/变量文件)导入的关键字和变量的关键字,也变得可用. 资源文件的结构: 资源文件的整体结构和测试用例文件一样,只不过其中不能包含测试用例.此外,资源文件中的设置表格只能包含导入相关的设置(Library.R…
1.1.1        如何搜索RobotFramework的关键字 有两种方式可以快速的打开RIDE的关键字搜索对话框 1.选择菜单栏Tools->Search Keywords,然后会出现如下的关键字搜索对话框,这个对话框就类似提供了一个关键字的API的功能,提供了关键字的名称,关键字的来源库和关键字的使用描述和关键字的参数. 2.通过F5快捷键,直接按F5,就可以自动弹出我们需要的关键字搜索框 1.1.2      关键字log Log 关键字其实就等同于python语言中的print函…
RobotFramework测试用例是由四部分组成的,下面就从这四个部分简单介绍语法: 关键字表 *** Keywords *** 设置表 *** Settings *** 变量表 *** Variables *** 测试用例表 *** Testcases *** 1.关键字表 关键字表是干什么用的? 组合已有的关键字(包括库关键字和其他用户关键字)来创建新的高层次的关键字,也就是用户关键字.因此,关键字表是存放用户关键字的. 用户关键字的组成: 1.用户关键字的名称 应该具备描述性,使用很长的…
1.安装python RF框架是基于python 的,所以一定要有python环境,python与rf存在兼容性问题,我安装的是python3.7.5,robotframework3.1.2. 选择添加到path,或者自己手动配置环境变量,打开cmd 输入python -V可以看到安装的版本 官网https://www.python.org/下载比较慢,可通过百度网盘下载 链接:https://pan.baidu.com/s/18MrCQytZQrf40VI_DywxYg 提取码:02b9 2.…
1.1.1        Run Keyword If判断的使用 Run Keyword If是一个常用的用来做逻辑判断的关键字,意思是如果满足了某一个判断条件,然后就会执行关键字,我们对list3中放入0,1,2三个元素,然后遍历list3,判断当取到元素为0时,我们输出"男生". @{list3} Create List      0     1     2 :FOR       ${value} in    @{list3} Run Keyword If        '${va…
Input Text和Click Button Input Text 关键字一般用来给输入框进行输入操作,该关键字接收两个参数[ locator | text ]. 示例1:启动安卓手机上一个APP的MainActivity,在打开Activity,进入界面后,分别向两个EditText输入框中输入12,并且点击按钮"计算"来计算出输入的这两个数字的乘积. APP的界面如下,提供了两个输入框,还有一个计算的Button按钮. 在写这个自动化案例前,我们可以使用安卓SDK提供的Ui Au…
在AppiumLibrary库中,Open Application关键字用来打开一个待测试移动APP. 示例1:连接本机已经打开的appium服务端,打开一个待测试的安卓APP,指定测试平台为Android,测试的手机deviceName为98YFBP522VSU,需要打开的APP路径为C:/Users/yongqing/Desktop/app-debug.apk,APP的包名为com.example.calculator,启动的appActivity为MainActivity Open App…
1.1.1        如何定义一个字典 此处我们说的字典,其实就等同于python语言中的字典,和列表一样,字典也是python语言中非常常用的一种数据结构,也类似于Java 语言中的Map. 在RobotFramework中,使用Create Dictionary来床架一个字典,比如我们定义一个字典:Dict1,并且我们再创建字典时,向字典中添加两个键值对,并且使用log many 关键字将这个字典中的内容全部输出出来. Log many 关键字类似于log 关键字,不同的是,log关键字…
1.1.1        如何快速查询某一个关键字的API说明 鼠标选中我们关键字,同时按住Ctrl+Alt键,即可出来该关键字的帮助API以及使用示例 1.1.2        如何快速补全关键字 键盘输入关键字的前缀,然后同时按住Ctrl+Alt+空格键,即可快速补全某个关键字 1.2.3        如何定义一个列表 此处我们说的列表,其实就等同于python语言中的列表,是python语言中最常用的一种数据结构,也类似于Java 语言中的List. 在RobotFramework中,我…
一.基础 RobotFramework带有丰富的系统关键,使用时无需导入,直接使用,为写自动化用例带来了极大的方便:不能停留在知道或者是会得程度,只有熟练使用各关键字,才能提升自动化用例的写作效率.下面将逐个举例介绍RobotFramework提供的断言关键字. 二.实例 为方便讲解,首先创建三个list变量:list_a.list_b.list_c:以及两个scalar变量:string和name. @{list_a}    create list    1    a    ${21}    …
1.1.1        如何使用for循环 不管在哪种编程语言中,for循环都是必不可少的,在Robot Framework中,我们也可以使用for循环来做遍历处理. 我们用for循环对一个列表进行遍历,并且输出该列表中的每一个元素.list2中总共我们放入a,b,c,d四个元素,然后循环遍历输出这些元素 @{list2} Create List      a      b     c      d :FOR       ${value} in    @{list2} log    ${val…
Clear Text关键字用来清除输入框的数据,该关键字接收一个参数[ locator ],这里的locator指的就是界面元素的定位方式. 示例1:Clear Text清除输入框数据时,采用resource-id的方式来定位输入框.这里依旧采用上面使用的APP界面来做操作示例,将输入的数字12通过Clear Text id=com.example.calculator:id/factorone来清除掉. Open Application   http://localhost:4723/wd/h…
Click Element关键字用来模拟点击APP界面上的一个元素,该关键字接收一个参数[ locator ] ,这里的locator指的是界面元素的定位方式. 示例1:使用Click Element关键字来模拟点击一个button按钮,这里locator使用name的方式来定位需要点击的元素,依旧采用上面之前使用过的APP界面来做操作示例. Open Application   http://localhost:4723/wd/hub  platformName=Android platfor…
Click A Point关键字用来模拟点击APP界面上的一个点,该关键字接收两个三个参数[ x=0 | y=0 | duration=100 ],x和y代表的是点的坐标位置,duration代表的是点击持续的时长.这三个参数如果没有传入的话,会分表默认x=0,y=0,duration=100. 示例1:这里依旧采用上面使用的APP界面来做操作示例,使用Click A Point关键字来模拟点击一个button按钮,输入button按钮所在的坐标. Open Application   http…
Click Element At Coordinates关键字通过一个具体的坐标点,来模拟点击一个Element,该关键字接收两个参数[ coordinate_X | coordinate_Y ]. 示例1:这里依旧采用上面使用的APP界面来做操作示例,使用Click Element At Coordinates关键字来模拟点击一个button按钮,输入button按钮所在的坐标. Open Application   http://localhost:4723/wd/hub  platform…
Get Element Location关键字用来获取一个Element的Location位置,该关键字接收一个参数[ locator ] 示例1:使用Get Element Location来获取一个EditText输入框的Location位置,在这里依旧采用上面使用的APP界面来做操作示例 Open Application   http://localhost:4723/wd/hub  platformName=Android platformVersion=22       deviceN…
Element Attribute Should Match 关键字用来判断元素的属性值是否和预期值匹配,该关键字接收四个参数[ locator | attr_name | match_pattern | regexp=False ],当通过locator识别到元素超过1个元素时,会默认选择第一个元素,attr_name参数代表所选元素的属性的名称,match_pattern参数代表预期匹配值.Regexp代表了匹配时是否通过正则表达式来进行匹配. 示例1:使用Element Attribute…
Get Network Connection Status关键字用来获取手机的网络连接状态.在获取到连接状态后,会返回不同的数字. Set Network Connection Status关键字用来设置手机的网络连接状态. Status状态码 数据流量连接 WiFi连接 飞行模式 说明 0 0 0 0 不打开任何连接 1 0 0 1 打开飞行模式 2 0 1 0 只打开wifi网络 4 1 0 0 只打开数据连接 6 1 1 0 打开所有的网络连接 示例1: Open Application …
断言关键字 描述 Should Be Empty 判断是否为空,如果不为空,执行失败,示例: ${value} Set Variable Hello Should Be Empty ${value} 结果不为空 Should Start With 判断某个字符串是否以预期执行的字符串开始,如果以指定的字符串开头,则执行成功,否则执行失败,示例 ${value} Set Variable Hello Should Start With ${value} qq 字符串${value}不以qq开头 S…
如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为:张永清,转载请注明出处,版权归作者所有.Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib 1. Robot Frdamwork中如何调用java Lib库 我们在前面介绍了,Robot Framework可以支持跨语言,那么对ja…
自动化测试如果需要能高效快速的支撑软件项目的测试,项目的快速迭代以及上线,除了以上我们介绍的需要许多的Lib来支持以及需要高效的去编写自动化测试案例外,还需要一个好的自动化测试框架平台来支撑我们的自动化测试案例的执行以及分析,自动化测试平台一般需要解决测试案例执行任务的创建,任务的管理,任务的调度,测试案例的解析,测试案例分别根据不同的测试类型分发给不同的测试工具或者测试Lib库进行执行,并且需要对执行的数据进行分析,得出质量数据,然后才好给出对应的测试报告分析数据给测试经理,项目经理来辅助持续…