第一部分:适合做自动化的项目
通常,以查询报表为主的系统,就是以插入,查询,删除,编辑为主的xx管理系统,这种系统不适合做web自动化。一般定位起来也比较麻烦,主要以嵌入式表格为主,层次较深,没有特定属性,很难准确定位,要写又臭又长的xpath。最主要的是不太好断言结果,因为你的数据是查询出来的,今天查询出来“张三”在第一页,后面这个查询数据增加,“张三”跑后第五页了,再后来跑到第170页,你说怎么用固定的信息断言? 没有断言,你怎么知道查询的结果对不对?这种系统的核心就是数据,其后台实现就是各种增删改查询接口。功能可用就好,一般这种系统不讲究用户体验之类的,关键是数据得正确。尤其是针对金融领域相关的系统,那少算一个数、一个零、一个小数点,事可就大了。所以在我看来做web自动化的实际意义并不大,或者说这类系统做web自动化的并不是系统最重要的部分。但是,这类系统非常适合做接口自动化测试,why?因为接口测试关注的就是数据,我们可以通过改变传参,然后断言接口的返回,以及数据入库结果。最后只要数据正确了,功能就做成大半,剩下的无非是如何把这些数据展示在页面上。
第二部分:自动化测试用例相关
简介
Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架。 它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。 它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。
2. 特点
- 使用简单
当你真的要向项目中推广一个技术或工具的时候,其实这点非常重要。对于大多测试团队的测试人员来说,开发技术还是很薄弱的。RF使用非常简单,只要告诉你是这些关键字是做什么用的,你去“填表格”就好的。
- 支持开发系统关键字
RF可不是只能写一些死板的操作过程,定义变量,数组、字典,写if判断,for循环都不在话下,甚至调用python所提供的方法。
- 可以像编程一样写测试用例
开发系统关键字,或者自己写个自定义库也很简单,用工具,但又不会受制于人工具。
- 非常丰富的库
详情参考以下内置库和扩展库说明。
3. 内置库
-
-
Builtin:提供一组经常需要的通用关键字(默认自动引入)。
-
Collections:提供一组用于处理Python列表和词典的关键字。
-
DateTime:用于日期和时间转换的库。
-
Dialogs:提供暂停测试执行和从用户获取输入的方法。
-
OperatingSystem:用于执行各种与操作系统相关的任务。
-
Process:用于在系统中运行进程的库。
-
Remote:可以连接到Telnet服务器并在打开的连接上执行命令。
-
String:用于生成,修改和验证字符串的库。
-
Screenshot:提供关键字以捕获桌面的屏幕截图。
-
Telnet:可以连接到Telnet服务器并在打开的连接上执行命令。
-
XML:用于生成,修改和验证XML文件的库。
-
4. 扩展库
-
WEB自动化测试:Selenium2Library(Python)、Selenium2Library(Java) 等。
-
HTTP自动化测试:HTTP library (livetest)、HTTP library (Requests) 等。
-
移动自动化测试:Android library、IOS library、AppiumLibrary等 。
-
数据库测试:Database Library、MongoDB library 等。
-
文件对比测试:Diff Library。
-
Windows-GUI测试:AutoItLibrary
- 第四部分
- 环境安装:Python2.7 + wxPython2.8 + RF3.0 + RIDE1.5