1.自动化分层:UI层实现界面自动化,Service层实现接口自动化,Unit层实现单元测试.
2.UI自动化测试常见的工具有:QTP,AutoIt,Selenium.Selenium是做Web测试最全面的工具支持浏览器全面,又模拟在浏览器中的操作.
3.单元测试全覆盖,接口测试覆盖大部分流程,界面自动化保证主流程即可
4.RF是通用的测试框架:采用表格语法易使用;可使用关键字驱动,数据驱动和行为驱动;可利用现有关键字组合新关键字;可用Python或Java扩展;
5.安装Python27,Setuptools,RF,wxPython,RF-RIDE
6.New Project-->New Test Suite-->New Test Case
7.Report主要是概括性的报告,总体案例的执行情况.Log则是更为详细的案例步骤报告.
8.Save保存当前焦点所在文件,Save All保存全部
9.F5:Search Keywords
10.Library加载测试库,默认PythonLibsite-packages目录下的文件;Resource加载资源,主要是工程相关的资源文件;Variables加载变量文件;Add Scalar定义变量;Add List定义列表型变量.
11.Suite Setup测试套件的初始化文件,Suite Teardown测试套件的收尾文件;Test Setup测试用例初始化,Test Teardown测试用例收尾
12.Project和Suite:二者都可建User Keyword, Scalar, List Variable.Project可建Suite, Directory, Resource;Suite可建Test Case
13.Suite前面多*表示有修改尚未保存
14.Project和最顶层的Test Suite是相通的,可是File也可是Directory.目录型的Test Suite可包含File型的Test Suite或嵌套Directory型的Test Suite.但Test Case只能在File Test Suite下
15.通常Test Suite里添加Resource, Resource中添加Library
16.Import中的Library是红色的说明导入失败,黑色表示导入成功
17.RF内置库在PythonLibsite-packages
obotlibraries目录中
18.Resource主要用来存放用户关键字,Resource下添加User Keyword
19.External Resource主要指还在Project管辖范围的Resource文件
20.变量:${Var}单个变量,@{listVar}List型变量,&{dictVar}是RF2.9的Dictionary变量
21.Set Global Variable:设定全局变量,该变量在所有的Test Suite和Test Case中都有效;Set Suite Variable:设定File Suite级变量,该变量只在当前的File Suite内有效;Set Test Variable:设定Case级变量,只在当前Case有效
22.环境变量的标识符为%, eg: log %{PATH},RF中只能使用环境变量,不能修改
23.特殊字符串常量:${/},${:},${EMPTY},,${False},${None},${null},${SPACE},${True}
24.RF中的变量都是字符串型的,字符串拼接不需要用+连接,abcd${var}efghabcdABCDefgh
25.创建Scalar变量:${var} Set Variable 'ABCD';创建List变量:@{listVar} Create List 1 2 3
26.Run Keyword If '${var}''ABCD' log 'HAHAHAHA'
27.变量支持索引和截取:${var[2]}或${var[0:2]}
28.Evaluate将后面的表达式放在python中运行
29.List型变量的获取:@{listVar}[index]或${listVar[index]}
30.对象变量:假设${return}是Request库中测试接口返回的对象,对象状态就是${return.STATUS},对象内容就是${return.CONTENT}
31分支:
Run Keyword If con1 do action1
... ELSE IF con2 do action2(...是必须的)
... ELSE do actionN
32.RF标准库:
Builtin,Collections(处理Python字典和列表), OperatingSystem(操作系统相关), String(字符串处理), XML, DateTime(日期时间转换), Telnet, Process, Screenshot, Remote(远程库)
常用第三方库:
Selenium2Library, HTTPLibrary, SSHLibrary, FTPLibrary, requestLibrary, DatabaseLibrary, cx_Oracle, PyMysql, JSONLibrary
33.打印日志
log ${var}
log many @{listVar}
python3安装RF:
1.下载并安装python3.7,勾选添加安装路径到环境变量(输入python --version,显示Python 3.7.3)
2.安装RF,cmd窗口输入:pip install robotframework(显示Successfully installed robotframework-3.1.2)
3.安装wxpython,cmd窗口输入:pip install wxpython(显示Successfully installed numpy-1.16.4 pillow-6.0.0 wxpython-4.0.6)
4.安装pygments(代码高亮库),cmd窗口输入:pip install pygments(显示Successfully installed pygments-2.4.2)
5.安装pywin32(RIDE依赖的库),cmd窗口输入:pip install pywin32(显示Successfully installed pywin32-224)
6.安装Pypubsub(RIDE依赖的库),cmd窗口输入:pip install Pypubsub(显示Successfully installed Pypubsub-4.0.3)
7.安装RIDE,cmd窗口输入:pip install https://github.com/HelioGuilherme66/RIDE/archive/master.zip(显示Successfully installed robotframework-ride-1.7.4b1.dev1)
Robot Framework常用库简介
标准库
Robot Framework可以直接导入使用的库,包括:
• Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的
• Dialogs:提供了暂停测试执行和从用户的输入方式。
• Collections:提供一组关键词处理Python列表和字典。
• OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robotframework正在运行的系统中执行。
• Remote:远程库接口的一部分。没有自己的任何关键字,作为robotframework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。
• Screenshot:提供关键字来捕获和存储桌面的截图。
• String:用于处理字符串并验证它们的内容的库,用于生成、修改和验证字符串
• Telnet:支持连接到Telnet服务器上打开的连接执行命令。
• XML:用于生成、修改和验证XML文件的库。
• Process:系统中运行过程的库。
• DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算
扩展库
Robot Framework需要下载安装后才能使用的库,包括:
• Android library:所有android自动化需要的测试库,内部使用的是Calabash Android
• iOS library:所有iOS自动化需要的测试库,内部使用Calabash iOS服务
• appiumlibrary:Android和iOS测试库,内部使用的是appium
• HTTP library (livetest):内部使用LiveTest工具的HTTP测试的库。
• HTTP library (Requests):内部使用request工具的HTTP测试的库。
• MongoDB library:使用pymongo和MongoDB交互的库。(MongoDB是一个基于分布式文件存储的数据库)
• Database Library (Java):基于Java的数据库测试库。也可使用Jython和Maven central.
• Database Library (Python):基于Python数据库测试库。支持任何Python解释器,包括Jython。
• watir-robot:使用Watir的工具的Web测试库。
• seleniumlibrary:Web测试库,内部使用比较流行的selenium工具。利用早期的selenium1.0和本身已经过时。
• selenium2library:使用selenium2的Web测试库。替换了大部分老的seleniumlibrary。
• selenium2library java:selenium2library的java接口
• Django Library:为Django的库,一个Python Web框架。
• sudslibrary:一种基于泡沫基于SOAP的Web服务的功能测试库,动态的SOAP 1.1的客户端。
• Archive library:处理.zip和.tar压缩包的库。
• Diff Library:比较两个文件的库。
• FTP library:Robot Framework上测试和使用FTP服务的库。
• SSHLibrary:通过SSH连接的在远程机器上执行命令。还支持使用SFTP进行文件传输
• rammbock:通用的网络协议测试库;提供简单的方法来指定网络数据包,并检查发送和接收数据包的结果。
• imagehorizonlibrary:跨平台、基于图像识别的GUI自动化纯Python库。
• autoitlibrary:Windows的GUI测试库,使用AutoIt的免费工具作为驱动。
• Eclipse Library:使用SWT窗口小部件测试Eclipse RCP应用程序的库。
• robotframework-faker:一个服务faker的库,faker的测试数据生成器。
• swinglibrary:用Swing GUI测试java应用程序库
• remoteswinglibrary:使用swinglibrary库测试和连接一个java进程,尤其是java web start的应用。(Java Web Start 是基于 Java 技术的应用程序的一种部署解决方案,它是连接计算机和 Internet的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序)