robot framework基础操作

聪明的石头IP属地: 上海
0.236字数 1,239阅读 3,528

robotframework支持的文件格式

HTML

TSV

Plain TEXT

reStructuredText


robotframework目录文件结构

RF是以project为单位进行管理的:

<> 一个project可以包含多个Test Suite

<>一个Test Suite可以包含多个 test case

<>一个Test Suite有四部分组成:Setting,Variables,Test Case,Keywords


执行脚本

执行整个项目所有用例,pybot项目路径:pybot D:\robot

执行整个Test Suite用例,pybot suite 路径:pybot D:\robot\testsuite.robot

执行单个测试用例:pybot --case名称 该用例所在suite的路径,如:pybot --case_login in D:\robot\testsuite.robot

将测试结果输出到固定路径:pybot --outputdir 报告路径  用例路径,如:pybot  outputdir D:test  D:\robot\testsuite.robot

执行tag的测试用例:pybot --include tag name 项目路径,如:pybot --include nonal  D:\robot


查看报告文件

用例执行完成 之后会形成三个文件,log.html ,out.xml,repot.html


报告截图

output.xml:记录的测试结果是XML文件,根据特定的需要可以编写脚本读取XML文件并生成特定的测试报告

log.html:会记录RF运行的每一个步骤,查看脚本运行的每一个步骤

report.html:测试报告,整体性展示运行状况


整体结构展示及关键字说明

Setting 下的列举的是为整个测试套件写的

*** Setting ***

Documentation 这个是当前Test Suite说明文字

Library                当前Test Suite需要使用的库

Resource                当前Test Suite需要加载使用的资源,可能是参数也可能是用例文件

Metadata                定义元数据

Variables              引用变量文件

Suite Setup            Test Suite执行前的动作

Suite Teardown          Test Suite执行后的动作

Test Setup              Test Case执行前的动作

Test Teardown          Test Case执行后的动作

Force Tags              Test Suite下的所有测试用例都会被打上这个tag

Default Tags            Test Suite的用例如果没有打上tag,就会用这个默认tag,如果打了tag,就会用自己的tag

Test Timeout            设置每一个测试用例的超时时间,只要超过这个时间就会失败,并停止案例运行

...                    这是防止某些情况导致案例一直卡住不动,也不停止也不是失败

Test Template          数据驱动模板(很有用的一个参数)


*** Variables ***

${scal}   创建变量

@{list}    创建列表

&{dict}    创建字典



*** Test Case ***

Test_01

[Documentation]      测试用例说明……

[Template]                数据驱动模板,每条用例只有一个模板

[Tags]                       测试用例标签

[Setup]                     测试用例执行前的动作

[Teardown]              测试用例执行后的动作

[Timeout]                 测试用例的超时时间

My Keyword One


Test_02

[Documentation] Post Request With URL Params

Create Session    httpbin                       http://httpbin.org

 ${params}=         Create Dictionary       key = value        key2=value2

 ${resp}=               Post Request            httpbin                /post                  params = ${params}

 Should Be Equal As Strings            ${resp.status_code}        200

*** Keywords ***

My Keyword One

[Documentation]      关键字描述

[Arguments]             自定义参数设置

[Return]                    将返回值抛出

[Timeout]                  关键字流程执行超时时间

[Tags]                        标签

[Teardown]                关键字流程结束动作

log                     ${SCALAR_VARS}

log Mang           @{LIST_VARS} log ${DICT_VARS}


几个简单的案例:

案例1:practice_setup_and_teardown.robot
*** Settings ***

Documentation          test

Suite Setup          suitestart

Suite Teardown        suitestop

Test Setup               testsetup

Test Teardown          teststop

*** Variables ***

${a}      hello

${b}      world

*** Test Case ***

[Documentation]     case1

case1

log     ${a}

case2

log     ${b}

*** Keywords ***

suitestart

log  suitestart

suitestart2

log  suitstop

案例2:practice_scalar.robot


*** Setting ***

Documentation   RobotFramework脚本的scalar标量练习

Force Tags          robot-3.0

Default Tags        owner-damao

*** Variables ***

#创建scalar变量
${name}    robot framework

${version}  3.0.1

${robot}      ${name}  ${version}

${null_var}   # 字符串被赋予空值

${example}   This value is joined together with a space


#创建列表

@{name}  Matti   Maap

@{list}    @{name}    NONA

@{account}  1 2 3

#创建字典

&{info}   name=Matti   addr = PuDianRoad  phone = 132

&{Info2}  name = Maap  addr = JinQiao  phone = 256

*** Test Case ***

测试打印scalar变量

[Documentation] 打印scalar变量

To Test Scalar

*** Keywords ***

[Documentation] 创建关键字 To Test Scalar [Documentation] 打印标量log${NAME}

To Test Scalar

              log  ${ROBOT}

              log  ${NULL_VAR}

              log  ${EXAMPLE}

              log ${LONG_WORDS}

API Requests

          [Arguments]    ${key}  ${Content-Type}  ${url}   ${api}  ${body}  ${Authorization}

          Return Value   ${value}

         ${headers}   Create Dictionary  ${Content-Type}  ${Authorization}

         ${body_data}   Create Dictionary   ${body}

         Create Session     url  ${url}   headers=${headers}

         ${addr}   Post Request   url   ${api}    data = ${body_data}   headers = ${headers}

         log   ${addr.content}

         log    ${addr.json()}

        ${responsedata}   To Json   ${addr.content}

        ${value}    Get From Dictionary     ${responsedata}   ${key}dd

案例3 :practice_List.robot


*** Setting ***

Documentation       RobotFramework脚本"列表"参数的练习

Force tags              "列表"参数的练习

Default tags             列表

*** Variables ***

@{data_list}            1 2 3 4 5 6

@{data2_list}          a b c d e f

...                            g h

*** Test Case ***

Test_01

Documentation   打印列表

print list variable

Test_02

Documentation   获取列表长度

get  list length

*** Keywords ***

Print List Variable

log many    @{data_list}   # 打印列表元素要使用 log many

log many    @{data2_list}  

get list length

[documentation] 获取列表长度

${length}    Built.in get Length   @{data2_list}

log many     ${length}

案例4:practice_dict.robot

*** Setting ***

Documentation   字典练习

Force Tags         robot 3.0

Default Tags     NONA

*** Variables ***

&{dict}  a=1 b=2 c=3 d=4

&{diact2}  m=1 n=2 g=3 k=4

...               l =5

*** Keywords ***

print dictionary data

log    &{dict}

log    &{dict}[a]

log many  &{dict}[a]   &{dict}[b]

*** Test Case ***

Documnetation   打印字典及元素

print dictionary data

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
总资产2共写了2316字获得2个赞共2个粉丝
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,238评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,430评论 3 415
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,134评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,893评论 1 309
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,653评论 6 408
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,136评论 1 323
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,212评论 3 441
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,372评论 0 288
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,888评论 1 334
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,738评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,939评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,482评论 5 359
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,179评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,588评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,829评论 1 283
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,610评论 3 391
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,916评论 2 372

推荐阅读更多精彩内容