1.RF框架

全称robot framework,一个基于python开发的,自动化测试框架,这个框架可以做:web自动化,接口自动化,APP自动化。

github官网

1).安装python   检查python环境 python -V或 pip -V

2).安装rf(dos命令里面输入)  pip install robotframework  安装图形界面库  pip install robotframework-ride

3).启动RF,安装完成后有图标直接双击运行,找到ride.py运行。

4).RF项目

项目文件夹(project )->测试集(test suite)->测试用例(test case)

5).  RF功能详解

(1).设置区

Doucument 添加用例说明        
Suite Setup 执行测试套件的前置操作,如初始化数据等
Suite TearDown 执行测试套件结束后的操作,如恢复数据等
Setup  执行测试用例得前置操作
Test TearDown 执行用例结束后的操作
Force Tags 用例标签,suite中的标签会给该测试套件下的所有Test case增加Force Tags
Timeout 设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。防止某些情况导致案例一直卡住不动,也不停止也不失败。
Template 测试模板,可以指定某个关键字为这个测试套件下所有testcase的模板,这样所有的testcase就只需要设置这个关键字的传入参数即可。(TestCase中使用)
Arguments 传入参数(New User Keyword使用)
Return Value 返回值(New User Keyword使用)

引用区:

Add Library 加载测试库,主要是【python目录】site-packages里的测试库
Add Resource 加载资源,主要是你工程相关的资源文件。
Add Variables 加载变量文件

参数区:

Add Scalar 定义变量
Add List 定义列表型变量
Add Dict 定义字典

数据区:

Add Metadata 定义元数据。(作用是在report和log里面显示定义好的内容,格式和document一样)

2、RF关键字驱动

1).什么是关键字? 有特殊含义的单词

2).什么是关键字驱动?关键字驱动脚本是比较复杂的数据驱动技术的逻辑扩展,封装了各种基本操作,每个操作由相应的函数实现,开发脚本时不需要关心这些基础函数,而是用一系列关键字指定执行的任务。

用一个关键字完成某一个功能,以期望解决我们的问题。

3)、RF基础数据类型

(1)、变量     是计算机语言中能存储计算结果或能表示抽象概念。变量可以通过变量名访问。

赋值   ${x1}=set variable 123 等价于 设x1=123。  运算: ${x1}=evaluate ${x1}+${x2}

应用:获取网页的文本,然后断言。

(2)、数组     是有序的元素序列。用于区分数组的各个元素的数字编号称为下标。下标是从0开始。

@{list}= create list 1 2        应用:调用接口传参数的时候,可以用数组。

(3)、字典   数据字典:可以根据键,得到值;也可以更新键的值。

&{map}=create dictionary aa=AA bb=BB              $(map['aa"])

应用:Json格式解析之后就是字典。

4)、分支和循环

(1)、条件运算  数值比较:大于:${x}>${y}  等于:${x}==${y}  小于:${x}<${y}

字符串比较 等于:"aa"=="bb"    包含: should contain

(2)、选择结构    IF语句  Run keyword if    如果条件为True,则执行关键字。

IF...ElSE    Run keyword if

ElSE IF

ElSE IF

5)、RF两种数据结构(需要使用到的库:Collections)

线性结构  数组 @{list}:1 2 3 4 5   添加元素: Append To List

键值对结构   字典 &{map}:a=A b=B c=C  添加键值对到字典:Set To Dictionary

6)、数据结构应用

for 循环  循环就是一直重复操作

:FOR ${i} IN 1 2 3 4 5

:FOR ${i} IN RANGE 1 5

Exit for loop

数据结构遍历

数组遍历 :FOR ${i} in @{list}     字典遍历: @{keys} =   Get Dictionary Keys  ${map} 然后遍历key

7)、字符串处理和异常

(1)、字符串的拼接

变量      #临时拼接: aaa ${x} bbb  #变量拼接:${str3}=  Catenate   SEPARATOR=    ${str1}    ${str2}

(2)、字符串包含

判断s1里面包含s2    '${s1}'._contains_('${s2}')

RF常用类库
1.标准库:不需要安装,直接用,RF自带。
BUitini(测试库) Collections(集和库) Datatime(时间库) ScreenShot(截屏库)
标准库的位置:C://python373\lib\sit-pakage\robot\librarys
2、扩展库:需要安装后才能使用
Web自动化测试:SeleniumLibrary、Selenium2Library、Selenium2Library for java等
API接口自动化:RequestsLibrary
APP自动化测试:AppiumLibrary
扩展库的位置:C://python373\lib\sit-pakages

准备UI自动化测试环境

1:通过pip安装扩展库:pip install robotframework-seleniumlibrary

2:下载谷歌浏览器

3:下载谷歌浏览器驱动(注意:谷歌浏览器的驱动必须和谷歌浏览器兼容)把chromdedriver.exe放到python目录下。

4:在RF的测试套件里面导入SeleniumLibrary

元素定位

id 、name、link_test、partial_link_text、xpanth、css、class_name、tag_name

前提:元素必须唯一

xpath:

1.通过绝对路径定位:这种方式几乎不用

2.通过相对路径定位://form/span/input

3.通过元素属性定位://input[@autocomplete="off"]                 //input[@autocomplete="off" and @class="s_ipt"]

4.通过部分属性定位://input[starts-with(@autocomplete,"of")]                       //input[contains(@autocomplete,"of")]

5.通过文本定位://a[text()="新闻"]

css:

1.通过绝对路径定位:这种方式几乎不用

2.通过ID或者class定位:#ID  .class

3.通过元素属性定位:input[autocomplete="off"]       input[autocomplete="off" a][ class="s_ipt"]

4.通过部分属性定位:input[autocomplete^="of"]以...开始     input[autocomplete$="of"] 以....结束    input[autocomplete*="of"] 包含....

5.通过子元素定位:div#s-top-left a:nth-child(3)

项目的三层架构

1.三层架构指的是什么?

(1)页面元素层 (2)业务逻辑层(3)测试用例层    业务逻辑层调用页面元素层,测试用例层调用业务逻辑层

2、为什么需要分层,分层的意义在哪里?

实现页面元素,公共方法,公共数据,测试用例集中式管理。增加脚本的重复利用率,增加脚本的可维护性.

RF非GUI的方式(命令行)运行

pybot -d  测试报告的路径  测试用例的路径

Jenkins  : Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。

RF框架----基础相关推荐

  1. Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能  之前一直用的是自 ...

  2. python学习框架图-Python学习---Python的框架基础学习

    框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...

  3. 《Android的设计与实现:卷I》——第2章 框架基础JNI

    第2章 框架基础JNI JNI(Java Native Interface,Java本地接口)是Java平台上定义的一套标准的本地编程接口.JNI允许Java代码与本地代码互操作,即Java代码可以调 ...

  4. python前端学习-------Flask框架基础(建议收藏)

    Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...

  5. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  6. php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析

    本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp ...

  7. 一.Spring框架基础

    JAVAEE框架之Spring 一.Spring框架基础 Spring:春天:轻量级的企业级开发框架,核心是IOC(控制反转)和AOP(面向切面编程). 官网:spring.io Spring–> ...

  8. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

  9. (转)Hibernate框架基础——一对多关联关系映射

    http://blog.csdn.net/yerenyuan_pku/article/details/52746413 上一篇文章Hibernate框架基础--映射集合属性详细讲解的是值类型的集合(即 ...

最新文章

  1. c语言子程序return,c语言return返回到哪
  2. 一位刚刚成功上岸的智能车队员对于参赛经历总结与对比赛的建议
  3. python文件排序
  4. STS Eclipse IDEA 指定启动JDK版本
  5. OpenGL球体的Phong渲染
  6. 谈VHDL/Verilog的可综合性以及对初学者的一些建议
  7. tf.app.flags和tf.app.run的使用
  8. 华为云专属月·行业深耕专项行动正式开启
  9. plupload 中文php,简单集成wangEditor plupload 到Tp3.2
  10. 纯CSS3动画按钮效果
  11. AJAX Accordion:可折叠面板的集合
  12. FPGA BCD计数器(一位)
  13. 精密电阻选购及换算方法
  14. 短信登录功能测试用例
  15. 樊登讲亲密关系_《亲密关系》
  16. xlsxwriter去掉网格线_python之xlsxwriter模块(可操作xls/xlsx格式文件)
  17. 怎样对系统进行优化?
  18. 一年级语文四季心田花开专项练习题
  19. 第四章(第二节)没有人,在年少时想成为一个普通人
  20. 游戏更新一直卡在计算机,win10电脑玩战地5游戏一直卡屏卡顿如何解决

热门文章

  1. Python脚本---在 MySQL数据库中跑批加载多个表的数据
  2. 【RPG Maker MV】RPG游戏《机器人养成记》制作笔记 - RPG Maker MV 界面介绍
  3. 1205: 求一元二次方程的实数根(C)
  4. Java用正则表达式判断学号,利用正则表达式验证学号_利用正则表达式开发动态网页...
  5. 西瓜书课后题——第十一章(特征选择与稀疏学习)
  6. Mysql主键与事务
  7. 《信号与系统》笔记 第二章
  8. 运营一款电视盒子需要注意什么?
  9. Linux-小企鹅输入法的安装与使用
  10. 写字机上位机c语言,易懂 | 手把手教你编写你的第一个上位机