工作总结:
杭州项目
1.自动化的测试流程:
- 采用构建不同的业务流程来实现软件功能实现的覆盖。每一个case就是一个业务流程,通过判断业务流程是否跑通来判断业务使用的功能正确性。
- 注释:在我们项目上具体实施俩套方案:
- 1)业务流程
- 2)功能模块
2.自动化环境
注释:杭州环境详细安装参照
-
基于框架:Robot Framework
Robot framework 本质上是基于 Python 语言开发的一个框架,它提供了一套独立的语法。它本身只提供基础的一些功能。比如,它自带的 Builtin 库中提供的关键字告诉你如何定义变量、数组和字典,打印信息,分支语句和循环等。以及框架本身所提供的 “自动化” 功能,如何组织用例,生成测试报告。
-
优势
- 使用相对于unittest框架简单
- 非常丰富的库
- 可以把excal的测试用例,以代码的形式积累起来
- 支持开发系统关键字
-
缺点
- RF集成了一些关键供我们使用,相较于unittest而言,提高了我们的工作效率,但因此我们测试被限制在RF的框框中,缺失了灵活性。
- 如果你想实现某一类型的自动化测试,如中接口、UI 或 移动APP的自动化,需要通过第三方Library完成
-
Web 自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library 等。
Windows GUI 测试:AutoItLibrary。
移动测试:Android library、iOS library、AppiumLibrary 等。 数据库测试:Database Library (Java)、Database Library (Python)、MongoDB library 等。 文件对比测试:Diff Library。 HTTP 测试:HTTP library (livetest)、HTTP library (Requests)等。
Python: 2.7
RIDE:就是一个图形化界面,用于创建、组织、运行测试的软件
一、RIDE:使用方法
1.创建项目-创建测试文件夹包-创建测试集合-创建testcase,这里不详细介绍
project - directory - suit - case
2.导包
3.resource 导入资源
-
当遇到重复使用多次的事件时应在:resource下新建资源,以便以后多次使用。
对创建的resource使用,相当于导包,当测试集添加对应资源后,
在文件夹下的case可以直接直接调用resource中的方法,可以把每个方法的名字,当成关键字使用。下图定义的一个关键字:
在case中的直接使用
4.变量的设置及引用
- 参考资料
5.页面元素的定位
- 参考资料
- 常用方法
- id= local # 注意:不能这样使用id="local" 和 name="local"
- name = local
- xpath = local #路径(绝对路径,相对路径)
- css = 名字
- 非常规
- 借助模拟tab按键间接定位元素
- div方法 :一层一层的父子类写 # 需要对代码特别熟悉
- js # 以上方法除js外都又能定位失败,js百分之百定位元素
- 例子(1)
- dom:document.querySelector('button[id="btn_search"]')
- dom:document.querySelector 是固定的用法
- button : 定位元素的类型 后面的接上 id ,name 什么,格式如上 - 例子(2)
- dom:document.querySelectorAll('input[name="delxq"]')[0]
- dom:document.querySelectorAll 查找后面元素的每个子类,并把它的子类放到一个列表中
- [0] 其实是对列表中元素的序列号,(在列表中没单元都有一个地址,可以从零开始(python中,其实大多数语言都是这样,有个别例外),往后一次类推,如[1])
注释:以上例子(1)(2)只是个人理解,并不专业。
6.RF关1键字
- 关键字请参考
- f5在RIDE中查看全部关键字(快捷键)
- RIDE中关键字提示:ctrl +alt +space
7.对键盘事件的处理
- 方法一:关键字创建
- 方法二:使用 robotframework + AutoItLibrary下发键盘事件,键盘命令,组合键
-
1)需要安装AutoltLibrary 库
2)找到对应的send 方法
send方法的参考资料
-
8.对Alert的处理:创建alert资源
9.opencv图像是是技术在自动化测试的应用 (目前不需要掌握)
- opencv参考资源
10.对异常的处理:当测试用例未能正长运行时,RF只是在会保留错误页面,在测试日志中生成一条fail
- 自定意异常:添加关键字
- 对功能的错误验证的处理
10.多线程的应用
11.页面等待的处理
- 参考资料
- 例子
- 1)Wait Until Element Contains local 表格内出现字段完成
[ locator | text | timeout=None | error=None ]
Timeout: 设置最多等待时间
Text : 出现字段 (待推敲)
等待表格弹出 - (2)Table Cell Should Contain 验证表单元格包含预期的文本
[ locator | row | column | expected | loglevel=INFO ]
12.对下拉框操作:使用js
RED插件的使用方法
需要掌握的技巧:
控制浏览器
- 浏览器的窗口大小
- 浏览器的前进后退
- 模拟浏览器的刷新
鼠标事件
键盘事件
获得验证信息
- title
- url
- text
设置元素等待
- 显示等待
- 隐式等待
- sleep休眠方法
sleep 2s
sleep 2m