SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
An introduction to
Robot Framework
            李亚飞/louieli 00185421
               2012.09.06 v2.0
目录

RF是什么

RF特性介绍

DEMO
好的测试框架应具备
1.易用
2.稳定
3.方便扩展
4.可以很好的组织用例
5.测试执行
6.灵活性
7.调试
8.日志
9.报告
10.框架支持工具
RF是什么
● Generic test automation framework
      – Utilizes the keyword-driven testing approach
● Implemented with Python
        – Jython supported fully and IronPython initially
        – Can be extended natively using Python or Java
        – Other languages supported via XML-RPC based remote
interface
● Open source
      – Apache 2.0 license
      – Sponsored by Nokia Siemens Networks
      – Active development and growing community
      – Hosted on Google Code
RF框架
RF特性—测试用例组成
Table name        Used for                                        Aliases
Setting table     1) Importing test libraries, resource           Setting, Settings, Metadata
                  files and variable files
                  2) Defining metadata for test suites and test
                  cases



Variable table    Defining variables that can be used elsewhere   Variable, Variables
                  in the test data


Test case table   Creating test cases from available keywords     Test Case, Test Cases



Keyword table     Creating user keywords from existing lower-     Keyword, Keywords, User
                  level keywords                                  Keyword, User Keywords
RF特性—简单易用的表格语法
Test Case           Action                Argument   Argument
Valid Login         Open Login Page

                    Input Name            demo
                    Input Password        mode

                    Submit Credentials

                    Welcome Page Should
                    Be Open


Setting Variables   Do Something          first      second argument
                                          argument
                    ${value} =            Get Some
                                          Value
                    Should Be Equal       ${value}   Expected value
RF特性—支持多种文件格式
html格式
Test Case      Action            Argument       Argument
My Test        [Documentation]   Example test


               Log               ${MESSAGE}


               My Keyword        /tmp


Another Test   Should Be Equal   ${MESSAGE}     Hello, world!
RF特性—支持多种文件格式
         *Setting*      *Value*            *Value*        *Value*
         Library        OperatingSystem
TSV 格式
         *Variable*     *Value*            *Value*        *Value*
         ${MESSAGE}     Hello, world!



         *Test Case*    *Action*           *Argument*     *Argument*
         My Test        [Documentation]    Example test
                        Log                ${MESSAGE}
                        My Keyword         /tmp

         Another Test   Should Be Equal    ${MESSAGE}     Hello, world!



         *Keyword*      *Action*           *Argument*     *Argument*
         My Keyword     [Arguments]        ${path}
                        Directory Should   ${path}
                        Exist
RF特性—支持多种文件格式
文本格式
RF特性—支持多种文件格式
reStructuredText format



 可以方便的用python读取,不常用
RF特性—支持多种用例风格
Keyword-driven style



 前面已经讲过了
RF特性—支持多种用例风格
Data-driven style
Test Case        User Name       Password
Invalid Password [Template]      Login with invalid credentials should
                                 fail
                 invalid         ${VALID PASSWORD}

                 ${VALID USER}   invalid
                 invalid         whatever
                 ${EMPTY}        ${VALID PASSWORD}

                 ${VALID USER}   ${EMPTY}

                 ${EMPTY}        ${EMPTY}
RF特性—支持多种用例风格
Data-driven style
RF特性—支持多种用例风格
Behavior-driven style
Test Case               Step
Valid Login             Given login page is open
                        When valid username and
                        password are inserted
                        and credentials are
                        submitted
                        Then welcome page should
                        be open
RF特性—灵活的用例组织

目录是Test Suite


文件是Test Suite


文件中Test Cases部分才是真正的
Test Case
RF特性—灵活的用例组织
Initialization files
RF特性—Variables
1.用例中的测试数据经常变动
2.用例需要跨平台、跨浏览器
3.需要更复杂的对像,而不仅仅是数字或字符串
4.不同关键字之间、测试库之间、用例之间的通信
5.用例中需要操作的值很长很复杂
RF特性—Variables
Variable types Scalar variables   List variables   Environment variables
                 ${NAME}          @{USER}          %{USER}
                 ${OBJ}           @{USER}[0]       %{JAVA_HOME}
                                  @{items}


 Using list variables as scalars
 Test Case Action                      Argument      Argument     Argument
 Example     @{items} =                Create List first          second
             Length Should Be          ${items}    2

             Append To List            ${items}      third

             Length Should Be          ${items}      3

             Log Many                  @{items}
RF特性—Variables
 Setting variables in command line
 --variable EXAMPLE:value
 --variable HOST:localhost:7272 --variable USER:robot
 --variable ESCAPED:Qquotes_and_spacesQ --escape quot:Q --escape space:_

 Built-in variables
Variable     Explanation
${CURDIR}    An absolute path to the directory where the test data file is located. This variable is
             case-sensitive.
${TEMPDIR}   An absolute path to the system temporary directory. In UNIX-like systems this is
             typically /tmp, and in Windows c:Documents and Settings<user>Local
             SettingsTemp.
${EXECDIR}   An absolute path to the directory where test execution was started from. New in
             Robot Framework 2.1.
${/}         The system directory path separator. / in UNIX-like systems,  in Windows.

${:}         The system path element separator. : in UNIX-like systems and ; in Windows.
RF特性—Variables
Variable Priorities


     1.Variables from the command line
     2.Variable table in a test case file
     3.Imported resource and variable files
     4.Variables set during test execution
     5.Built-in variables
RF特性—Variables
                                      1. set from the command line
  Variable Scopes                     2. BuiltIn keyword Set Global Variable
                                      3. Built-in variables
                                      推荐大写
  1. Global scope
  2. Test suite scope                 1. from the return values of keywords
  3. Test case scope                  2. BuiltIn keyword Set Test Variable
  4. User keyword scope               推荐小写



User keywords get their own     1. created in Variable tables
variables                       2. imported from resource and variable files
from arguments passed to them   3. BuiltIn keyword Set Suite Variable
and return values
from the keywords they use      4. test suite scope is not recursive
推荐小写                            推荐大写
RF特性—自定义关键字
RF特性—Resource and Variable files
  通过Resource files 可以很方便的共享测试设置、公
  共变量、用户自定义关键字。



  Variable files 提供了更强大的机制,复杂变量的创
  建变得如此简单。Variable files被视为python 代码,
  所以想创建什么就创建什么。
RF特性—Resource files

Importing resource files
Setting     Value                     Value
Resource    myresources.html
Resource    ../data/resources.html
Resource    ${RESOURCES}/common.tsv
Resource    ../common_resource.txt
RF特性—Resource files
RF特性—Variable files
Importing a variable file
Setting     Value                    Value     Value
Variables   myvariables.py
Variables   ../data/variables.py
Variables   ${RESOURCES}/common.py
Variables   taking_arguments.py      arg1      ${ARG2}

Command line

--variablefile myvariables.py
--variablefile path/variables.py
--variablefile /absolute/path/common.py
--variablefile taking_arguments.py:arg1:arg2
RF特性—Variable files
           导入这段代码就会得到
           AREA1和AREA2两个变量
RF特性—Variable files
Extended variable syntax
RF特性—Variable files
Extended variable syntax

   1.搜索全名变量(OBJECT.name),若没找到则启用扩展变量语法
   2.创建一个基本变量${OJBECT}
   3.搜索变量OBJECT,若没找到,抛异常,用例失败
   4.大括号中的内容作为python代码执行,若执行出错,
     抛异常,用例失败
   5.设置扩展变量的值python代码的执行结果
RF特性—Variable files
Extended variable assignment
RF特性—Variable files
Extended variable assignment

 1.要赋值的变量(${OBJECT.age})必须是标量,变量名字必须包含至少一个点。
 否则按普通赋值处理
 2.如果要赋值的变量(${OBJECT.age})已经存在,用新值覆盖旧值
 3.创建基本变量${OBJECT}
 4.创建属性变量name
 5.搜索变量OBJECT,若没找到,${OBJECT.age}按普通赋值处理
 6.如果找到的OBJECT变量是string或number,扩展语法不启用,
 ${OBJECT.age}按普通赋值处理
 7.如果以上6步全部满足,设置属性变量。如果设置失败,抛异常,用例失败
RF特性—循环
Test Case   Action   Argument    Argument    Argument   Arguments

Example 1   :FOR     ${animal}   IN          cat        dog
                     Log         ${animal}
                     Log         2nd
                                 keyword
            Log      Outside
                     loop

Example 2   :FOR     ${var}      IN          one        two

            ...      three       four        five       six
            ...      seven
                     Log         ${var}
RF特性—循环
Test Case   Action    Argument            Argument         Argument            Arguments
Example     :FOR      ${element}          IN               @{ELEMENTS}
                      Start Element       ${element}

Test Case      Action   Argument               Argument             Argument
Exit Example   :FOR     ${var}                 IN                   @{SOME LIST}
                        Run Keyword If         '${var}' == 'EXIT'   Exit For Loop
                        Do Something           ${var}

Test Case   Action               Argument       Argument            Argument    Argument
Example     Repeat Keyword       5              Some Keyword        arg1        arg2
            Repeat Keyword       42 times       My Keyword
            Repeat Keyword       ${var}         Another KW          argument
pybot --argumentfile default_options.txt --name example my_tests.html




                                    RF特性—测试执行
pybot [options] datasources
jybot [options] datasources
interpreter /path/to/robot/runner.py [options] datasources
java -jar robotframework-<version>.jar [options] datasources


jybot --include smoke --variable HOST:10.0.0.42 path/to/tests/
pybot --variable BROWSER:IE --name IE --log none --report none
       --output out/ie.xml login
pybot --argumentfile default_options.txt --name example
my_tests.html
pybot --argumentfile default_options.txt --name example my_tests.html




                                   RF特性—测试执行
--test Example
--test mytest --test yourtest
--test example*
--test mysuite.mytest
--test *.suite.mytest
--suite example-??
--suite mysuite --test mytest --test your*
--suite parent.child --suite myhouse.myhousemusic --test jack*
--include example
--exclude not_ready
--include regression --exclude long_lasting
pybot --argumentfile default_options.txt --name example my_tests.html




                                   RF特性—测试执行
--xunitfile 生成Xunit compatiable result file
加时间戳
pybot --timestampoutputs --log mylog.html --report NONE tests.html
设置title
pybot --logtitle Smoke_Test_Log --reporttitle Smoke_Test_Report
      --include smoke my_tests/
设置颜色
--reportbackground blue:red
--reportbackground green:yellow:red
--reportbackground #00E:#E00
pybot --argumentfile default_options.txt --name example my_tests.html




                                              RF特性—RIDE
pybot --argumentfile default_options.txt --name example my_tests.html




                          RF特性—丰富的测试库
pybot --argumentfile default_options.txt --name example my_tests.html




                RF特性—创建自己的测试库

                         Python                                         Java

                                                     Remote library
                                                     Any languages

                Static API                                                     Hybrid API
                                                        Dynamic API
pybot --argumentfile default_options.txt --name example my_tests.html




                RF特性—创建自己的测试库
pybot --argumentfile default_options.txt --name example my_tests.html




                RF特性—创建自己的测试库
pybot --argumentfile default_options.txt --name example my_tests.html




                RF特性—创建自己的测试库




           Setting          Value             Value                     Value       Value
           Library          Remote            http://localhost:8270     WITH NAME   Example1
           Library          Remote            http://10.0.0.42:7777     WITH NAME   Example2
pybot --argumentfile default_options.txt --name example my_tests.html




                    RF特性—Listener Interface
pybot --argumentfile default_options.txt --name example my_tests.html




                              RF特性—活跃的社区
pybot --argumentfile default_options.txt --name example my_tests.html




                                                         DEMO
pybot --argumentfile default_options.txt --name example my_tests.html




                               For more information

    http://code.google.com/p/robotframework/
    http://robotframework.googlecode.com/hg/doc/quickstart/quickstart.html
    http://www.virtuousprogrammer.com/?p=264
    http://code.google.com/p/robotframework/wiki/UserGuide
    http://code.google.com/p/robotframework/wiki/PythonTutorial

Weitere ähnliche Inhalte

Was ist angesagt?

WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHBhavsingh Maloth
 
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTHBhavsingh Maloth
 
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonCreating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonSiddhi
 
Java Programming Guide Quick Reference
Java Programming Guide Quick ReferenceJava Programming Guide Quick Reference
Java Programming Guide Quick ReferenceFrescatiStory
 
JavaParser - A tool to generate, analyze and refactor Java code
JavaParser - A tool to generate, analyze and refactor Java codeJavaParser - A tool to generate, analyze and refactor Java code
JavaParser - A tool to generate, analyze and refactor Java codeFederico Tomassetti
 
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)FrescatiStory
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl ProgrammingUtkarsh Sengar
 
Java tutorials
Java tutorialsJava tutorials
Java tutorialssaryu2011
 
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...Ranel Padon
 
Unix processes
Unix processesUnix processes
Unix processesSunil Rm
 

Was ist angesagt? (19)

WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
 
Unix
UnixUnix
Unix
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Unit v
Unit vUnit v
Unit v
 
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT IV NOTES BY BHAVSINGH MALOTH
 
Creating Domain Specific Languages in Python
Creating Domain Specific Languages in PythonCreating Domain Specific Languages in Python
Creating Domain Specific Languages in Python
 
Java For Automation
Java   For AutomationJava   For Automation
Java For Automation
 
Java SE 8 best practices
Java SE 8 best practicesJava SE 8 best practices
Java SE 8 best practices
 
Java Programming Guide Quick Reference
Java Programming Guide Quick ReferenceJava Programming Guide Quick Reference
Java Programming Guide Quick Reference
 
Project Coin
Project CoinProject Coin
Project Coin
 
Gdb cheat sheet
Gdb cheat sheetGdb cheat sheet
Gdb cheat sheet
 
Cheat Sheet java
Cheat Sheet javaCheat Sheet java
Cheat Sheet java
 
JavaParser - A tool to generate, analyze and refactor Java code
JavaParser - A tool to generate, analyze and refactor Java codeJavaParser - A tool to generate, analyze and refactor Java code
JavaParser - A tool to generate, analyze and refactor Java code
 
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)XSLT 1 and XPath Quick Reference (from mulberrytech.com)
XSLT 1 and XPath Quick Reference (from mulberrytech.com)
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl Programming
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Scala in a nutshell by venkat
Scala in a nutshell by venkatScala in a nutshell by venkat
Scala in a nutshell by venkat
 
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...
Python Programming - IV. Program Components (Functions, Classes, Modules, Pac...
 
Unix processes
Unix processesUnix processes
Unix processes
 

Andere mochten auch

Marcus Graham: Community Strategy for Content Platforms
Marcus Graham: Community Strategy for Content PlatformsMarcus Graham: Community Strategy for Content Platforms
Marcus Graham: Community Strategy for Content PlatformsCMX
 
Struggling to surrender dr jeffrey lang
Struggling to surrender dr jeffrey langStruggling to surrender dr jeffrey lang
Struggling to surrender dr jeffrey langFirdaus Wong Wai Hung
 
Bandwidth dan throughput
Bandwidth dan throughputBandwidth dan throughput
Bandwidth dan throughputslamet01
 
Metlifewebsitepresentation
MetlifewebsitepresentationMetlifewebsitepresentation
Metlifewebsitepresentationashleymannes
 
Long term care funding in the UK: The Dilnot Commission and the co-existence ...
Long term care funding in the UK: The Dilnot Commission and the co-existence ...Long term care funding in the UK: The Dilnot Commission and the co-existence ...
Long term care funding in the UK: The Dilnot Commission and the co-existence ...ILC- UK
 
Soko test-2
Soko test-2Soko test-2
Soko test-2Soko_92
 
хүн орчин
хүн орчинхүн орчин
хүн орчинbuzuuhai
 
Getting More Business from Your Members with Electronic Strategies (Credit Un...
Getting More Business from Your Members with Electronic Strategies (Credit Un...Getting More Business from Your Members with Electronic Strategies (Credit Un...
Getting More Business from Your Members with Electronic Strategies (Credit Un...NAFCU Services Corporation
 
Ken's digital images
Ken's digital imagesKen's digital images
Ken's digital imagesKen Woolford
 
Eksamen1
Eksamen1Eksamen1
Eksamen1mvaage
 
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near OmahaSidDillon Crete
 
Ns dsc1110 a-10-0197_v2_web_english_final_lr
Ns dsc1110 a-10-0197_v2_web_english_final_lrNs dsc1110 a-10-0197_v2_web_english_final_lr
Ns dsc1110 a-10-0197_v2_web_english_final_lremteemt
 
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...ILC- UK
 
Differentiation Strategies through Self-service Retail Delivery Options (Cred...
Differentiation Strategies through Self-service Retail Delivery Options (Cred...Differentiation Strategies through Self-service Retail Delivery Options (Cred...
Differentiation Strategies through Self-service Retail Delivery Options (Cred...NAFCU Services Corporation
 
цахим үзүүлэн
цахим үзүүлэнцахим үзүүлэн
цахим үзүүлэнZaya80
 
Chapter3.3
Chapter3.3Chapter3.3
Chapter3.3nglaze10
 
Using LinkedIn to Generate Business
Using LinkedIn to Generate BusinessUsing LinkedIn to Generate Business
Using LinkedIn to Generate BusinessPaul Stonier
 

Andere mochten auch (20)

Marcus Graham: Community Strategy for Content Platforms
Marcus Graham: Community Strategy for Content PlatformsMarcus Graham: Community Strategy for Content Platforms
Marcus Graham: Community Strategy for Content Platforms
 
Struggling to surrender dr jeffrey lang
Struggling to surrender dr jeffrey langStruggling to surrender dr jeffrey lang
Struggling to surrender dr jeffrey lang
 
Bandwidth dan throughput
Bandwidth dan throughputBandwidth dan throughput
Bandwidth dan throughput
 
iTeller Preview
iTeller PreviewiTeller Preview
iTeller Preview
 
Metlifewebsitepresentation
MetlifewebsitepresentationMetlifewebsitepresentation
Metlifewebsitepresentation
 
Long term care funding in the UK: The Dilnot Commission and the co-existence ...
Long term care funding in the UK: The Dilnot Commission and the co-existence ...Long term care funding in the UK: The Dilnot Commission and the co-existence ...
Long term care funding in the UK: The Dilnot Commission and the co-existence ...
 
Soko test-2
Soko test-2Soko test-2
Soko test-2
 
хүн орчин
хүн орчинхүн орчин
хүн орчин
 
Getting More Business from Your Members with Electronic Strategies (Credit Un...
Getting More Business from Your Members with Electronic Strategies (Credit Un...Getting More Business from Your Members with Electronic Strategies (Credit Un...
Getting More Business from Your Members with Electronic Strategies (Credit Un...
 
Prueba de ofiamtica
Prueba de ofiamticaPrueba de ofiamtica
Prueba de ofiamtica
 
Ken's digital images
Ken's digital imagesKen's digital images
Ken's digital images
 
Ejemplo cambio climático
Ejemplo cambio climáticoEjemplo cambio climático
Ejemplo cambio climático
 
Eksamen1
Eksamen1Eksamen1
Eksamen1
 
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha
2012 Chevrolet Tahoe For Sale NE | Chevrolet Dealer Near Omaha
 
Ns dsc1110 a-10-0197_v2_web_english_final_lr
Ns dsc1110 a-10-0197_v2_web_english_final_lrNs dsc1110 a-10-0197_v2_web_english_final_lr
Ns dsc1110 a-10-0197_v2_web_english_final_lr
 
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...
ILC-UK and the Actuarial Profession Debate: The Economics of Promoting Person...
 
Differentiation Strategies through Self-service Retail Delivery Options (Cred...
Differentiation Strategies through Self-service Retail Delivery Options (Cred...Differentiation Strategies through Self-service Retail Delivery Options (Cred...
Differentiation Strategies through Self-service Retail Delivery Options (Cred...
 
цахим үзүүлэн
цахим үзүүлэнцахим үзүүлэн
цахим үзүүлэн
 
Chapter3.3
Chapter3.3Chapter3.3
Chapter3.3
 
Using LinkedIn to Generate Business
Using LinkedIn to Generate BusinessUsing LinkedIn to Generate Business
Using LinkedIn to Generate Business
 

Ähnlich wie Rf介绍

UNIX - Class4 - Advance Shell Scripting-P1
UNIX - Class4 - Advance Shell Scripting-P1UNIX - Class4 - Advance Shell Scripting-P1
UNIX - Class4 - Advance Shell Scripting-P1Nihar Ranjan Paital
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework OpenDaylight
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet
 
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner)
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner) Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner)
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner) Puppet
 
Robotframework
RobotframeworkRobotframework
RobotframeworkElla Sun
 
Class 3 - PHP Functions
Class 3 - PHP FunctionsClass 3 - PHP Functions
Class 3 - PHP FunctionsAhmed Swilam
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Simon Ritter
 
Mobile Software Engineering Crash Course - C02 Java Primer
Mobile Software Engineering Crash Course - C02 Java PrimerMobile Software Engineering Crash Course - C02 Java Primer
Mobile Software Engineering Crash Course - C02 Java PrimerMohammad Shaker
 
Advanced Perl Techniques
Advanced Perl TechniquesAdvanced Perl Techniques
Advanced Perl TechniquesDave Cross
 
Rubyspec y el largo camino hacia Ruby 1.9
Rubyspec y el largo camino hacia Ruby 1.9Rubyspec y el largo camino hacia Ruby 1.9
Rubyspec y el largo camino hacia Ruby 1.9David Calavera
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Adam Tomat
 
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott Nottingham
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott NottinghamAutomated Puppet Testing - PuppetCamp Chicago '12 - Scott Nottingham
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott NottinghamPuppet
 
Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2nottings
 
Ruby on Rails: Coding Guideline
Ruby on Rails: Coding GuidelineRuby on Rails: Coding Guideline
Ruby on Rails: Coding GuidelineNascenia IT
 
Let's start with Java- Basic Concepts
Let's start with Java- Basic ConceptsLet's start with Java- Basic Concepts
Let's start with Java- Basic ConceptsAashish Jain
 

Ähnlich wie Rf介绍 (20)

UNIX - Class4 - Advance Shell Scripting-P1
UNIX - Class4 - Advance Shell Scripting-P1UNIX - Class4 - Advance Shell Scripting-P1
UNIX - Class4 - Advance Shell Scripting-P1
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework
 
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner) Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
Puppet Camp Paris 2015: Power of Puppet 4 (Beginner)
 
Licão 13 functions
Licão 13 functionsLicão 13 functions
Licão 13 functions
 
Power of Puppet 4
Power of Puppet 4Power of Puppet 4
Power of Puppet 4
 
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner)
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner) Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner)
Puppet Camp Amsterdam 2015: The Power of Puppet 4 (Beginner)
 
Robotframework
RobotframeworkRobotframework
Robotframework
 
Class 3 - PHP Functions
Class 3 - PHP FunctionsClass 3 - PHP Functions
Class 3 - PHP Functions
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8Improved Developer Productivity In JDK8
Improved Developer Productivity In JDK8
 
Mobile Software Engineering Crash Course - C02 Java Primer
Mobile Software Engineering Crash Course - C02 Java PrimerMobile Software Engineering Crash Course - C02 Java Primer
Mobile Software Engineering Crash Course - C02 Java Primer
 
Advanced Perl Techniques
Advanced Perl TechniquesAdvanced Perl Techniques
Advanced Perl Techniques
 
Rubyspec y el largo camino hacia Ruby 1.9
Rubyspec y el largo camino hacia Ruby 1.9Rubyspec y el largo camino hacia Ruby 1.9
Rubyspec y el largo camino hacia Ruby 1.9
 
Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018Supercharging WordPress Development in 2018
Supercharging WordPress Development in 2018
 
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott Nottingham
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott NottinghamAutomated Puppet Testing - PuppetCamp Chicago '12 - Scott Nottingham
Automated Puppet Testing - PuppetCamp Chicago '12 - Scott Nottingham
 
Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2
 
Ruby on Rails: Coding Guideline
Ruby on Rails: Coding GuidelineRuby on Rails: Coding Guideline
Ruby on Rails: Coding Guideline
 
Let's start with Java- Basic Concepts
Let's start with Java- Basic ConceptsLet's start with Java- Basic Concepts
Let's start with Java- Basic Concepts
 

Kürzlich hochgeladen

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Kürzlich hochgeladen (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Rf介绍