如何使用Robot Framework编写优秀的测试用例 概述 命名 测试套件命名 测试用例命名 关键字命名 setup和teardown的命名 文档 测试套件文档 测试用例文档 用户关键字文档 测试套件结构 测试用例结构 工作流测试 数据驱动测试 用户关键字 变量 变量的命名 传参和返回值 避免使用Sleep关键字 我们AT中的一些约定 概述 这篇文档是使用Robot Framework编写好的测试用例的高级纲要,至于如何实际和被测系统(SUT)交互超出了本文档的范围. 最重要的大纲是使得测试…
package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import…
import unittest import webdriver import time class Test(unittest.TestCase): @classmethod def setUpClass(self): cap = {} cap['platformName'] = 'Android' cap['platformVersion'] = '4.4.2' cap['deviceName'] = '7N2SSE158P001892' cap['noReset'] = 'noReset'…
介绍 这篇文档将会是一篇在「高层面」的怎么用 Robotframework 来编写优秀测试用例的原则.至于如何使用 Robotframework 来与您的待测试系统相作用这样的细节讨论是不包含在这篇文档中的. 最重要的一条原则就是保证测试用例对于(不?)熟悉这个领域的人来讲越简单越好. 关于这个主题的更多信息,你可以查看以下这些优秀的资源: Writing Maintainable Automated Acceptance Tests 作者:Dale H. Emery How to Struct…
命名 测试套件的名称   之后,你可能应该描述你的名字. 名称是从文件或目录名自动创建: 扩展了. 强调了转换空间. 如果名称都是小写,大写的单词是. 名称可以是比较长的,但是太长的名字不方便 文件系统. “顶层套房的名字可以覆盖从命令行使用的 姓名选项,如果需要. 实例:   login_tests.robot -> Login Tests IP_v4_and_v6 -> IP v4 and v6   测试用例名称   试验名称应描述类似套房的名字. 如果一套包含许多类似的测试,和套件本身是…
1. 前言 本篇是第一系列(Http接口自动化)的第五课程,如果对系列课程大纲不清楚的,可以查看<RobotFramework系列免费课程-开课了~>. 前面我们介绍了,在真正实施前,需先定好多人协作过程中约定的接口用例规范,以及开始时,接口项目如何结构化分层,那么今天,我们来聊聊,用RobotFramework如何编写接口用例及如何对用例断言. 2. 开始前的准备 在写接口用例前,除了前面几节介绍的接口框架环境准备.接口用例规范的制定.项目分层这几点外,在真正开始写用 例之前,还有一环节是必…
引子 我们使用符合Robot Framework规范的一种表格语法来编写测试用例.用例一般会是下面这个样子 这样的表格存储到一个文件中,就是一组测试用例.RF支持多种格式,如HTML,TSV,纯文本等.它们长相大同小异,其实描述的都是一种内容.为了方便,推荐使用RIDE这个用例的编辑工具来编写测试用例,这些文本在RIDE环境下被打开长得是一个样子的. 测试用例与文件的关系 一个文件被称作一个测试套件(Test suit),期间可以包含多个测试用例.上图就是一个测试套件,里面包含2个测试用例,My…
基本语法 测试用例由关键字组成,关键字的来源有三种: 1从测试库引入:2从资源文件引入:3从关键字表中引入(自定义关键字) 下面就是一个典型的测试用例组织形式. 图中有2个测试用例“Valid Login” 和 “Setting Varriables”.第一列是用例名称,第二列是关键字,这些关键字来实现具体的测试工作,后面的列是参数列,放置关键字需要的参数.Valid Login这个用例其实很清晰,我们通过读这个用例使用的关键字就能清晰的看出是一个登陆的检验. 使用参数 我们看到,关键字其实和编…
** Test Cases *** Test With Settings [Documentation] Another dummy test # 用于指定测试用例文档 [Tags] dummy owner-johnoe # 用于指定测试用例标签 [Template] # 用于指定测试模板,测试用例本身将只包含数据,每行数据都是传递给该关键字的参数,最终实现数据驱动测试 log Hello,world Valid Longin Open Login Page Input Username Inp…
1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器.2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统3.尽量只做功能中正向逻辑的验证,不要考虑太多逆向逻辑的验证,逆向逻辑的情况很多(例如手号输错有很多种情况) ,验证一方面比较复杂,需要编写大量的脚本,另一方面自动化脚本本身比较脆弱,很多非正常的逻辑的验证能力不强. (我们尽量遵循用户正常使用原则编写脚本即可)4.脚本之间不要产生关联性,也就是说编写的每一个脚本都是独立的,不能依赖或影响其…