知识点
1. 了解什么是 TDD、BDD、ATDD
2. 为什么选择Robot Framework
3. 安装 Robot Framework 以及常用模块
4. Robot Framework测试架构
TDD
Test Driven Development(测试驱动开发)有别于传统技术人员开发常常一头钻进去撰写代码,TDD 鼓励在接收到功能需求时优先思考如何测试,譬如网站登入功能必须区分用户是否曾经注册、登入失败显示的讯息、失败次数过多时(可能是攻击行为)的措施等,TDD 常常拿来跟 User Story(用户叙述)一起使用,经由整体思考测试流程后再投入程序开发,减少开发途中遗漏重要功能。
BDD
Behavior Driven Development (行为驱动开发)是一种敏捷软体开发的技术,它鼓励软体项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD最初是由 Dan North 命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应,这篇文章是 Dan North 本人对于 BDD 提出的实例。
ATDD
Aceptance Test Driven Development (验收测试驱动开发)
TDD基本上只跟开发人员有关,如果对功能需求理解错误,还是会浪费不少时间资源,所以用户/PM、RD、QA需要坐下来一起讨论制定验收 Test Case (测试案例),ATDD的重点不在 How (如何完成功能),而是 What (要达到什么功能),更重要的是测试案例是使用者最后要验收的方式,所以使用者要看的懂,这也是本实验介绍 Robot Framework 的主因。
Robot Framework是基于python的测试框架,基本上python能做到的事情它都能做到,既然如此为什么我们不直接使用python呢? 因为ATDD主要主角是没有技术经验的用户,怎么利用好懂的自然语言让用户可以参与到测试流程之中就是Robot Framework 的一大卖点。
安装 Robot Framework 以及常用模块
1. sudo pip install robotframework(如果提示超时 多运行几次)
2. sudo pip instal lrequests robotframework-requests--upgrade(如果提示超时 多运行几次)
3. 产生 requirements.txt ,以后每次作实验就可以一个指令安装完所有需要的套件
3.1 echo-e"robotframework >= 3.0.2\nrequests > 2.2.0\nrobotframework-requests > 0.4.3"> requirements.txt
3.2 sudo pip install -r requirements.txt --upgrade
4. 确认安装成功: robot --version
Robot Framework测试架构
Robot Framework 基于 python ,由 Test Libraries 提供的API测试不同的应用,基本上它可以做所有 python可以做的事,不同点是 Robot Framework 将 Library 、 Test Cases、Data 之间利用关键字的概念介接起来,发挥 ATDD 将技术跟非技术人员讨论整合的基础,由用户发起需求,工程师实作功能关键字,再交由 QA 用关键字拼凑出测试实例交付用户实施验收测试
架构图代码架构
1. 设置(Settings)
设置整个 Test Suite (测试套件)的相关资讯、包含库等等,也可以用Resource来引入自己写的 robot 档案,單行註解是以#開頭。
*** Settings ***
Documentation A hello world test suite for Shiyanlou
... Just output some message on console
Library String
#Resource keyword.robot
2. 变量(Variables)
在这个区域中可以定义变量,如果在 Keywords 或是 Test Cases 就必须使用Set Variable关键字,可定义一般变量或是 Dictionary (字典)。特别要注意的是 Robot Framework 变量名称并不含大小写跟下划线,${showMessage}、${show_message}、${Show_Message}都代表相同的变量。
*** Variables ***
${ACTION} hi
@{MESSAGES} world yhy
3. 关键字(Keywords)
关键字设计是 Robot Framework 的核心,可以在关键字中再利用其他关键字组成复杂的动作,类似函数的概念,[Arguments]可带入变量,而[Return]可将变量带出关键字。
*** Keywords ***
Print Welcome Message
[Arguments] ${act} ${message}
Log To Console ${act} ${message}!!
[Return] Success
4. 测试案例(Test Cases)
测试案例一般依照 User Story 撰写,一如验收系统功能的精神是在不知道系统的介面及实作细节的前提下,用户或 QA 一样知道系统该做什麽。因此,把系统功能步骤以自然语言的描述方式留在 test case 层级,实作细节留在 关键字 / 库,并把常用的实作细节抽出来方便重複引用。注意测试案例是循序由上执行到下,所以测试案例之间的状态跟资料会影响到测试结果。
*** Test Cases ***
Should See Welcome Message and Result
:FOR ${message} IN @{MESSAGES}
\ ${result} = Print Welcome Message ${Action} ${message}
\ Log To Console Result: ${result}
库OperatingSystem读取本机的档案所以需要;
库RequestsLibrary是专门用来处理 HTTP Request 的;
Suite Setup 测试套件setup
http://www.cnblogs.com/laoqing/p/7192301.html
网友评论