robot framework实现web和app自动化

2023-10-27

前言

本文,仅适用于完全没接触过rf的小白,也是作为自己学习的一个记录

一、工欲善其事必先利其器!第一步,环境安装:

1.需要python环境,去官网下载python解释器,配置环境变量
2.安装robotframework :pip install robotframework
3.安装ride:pip install robotframework-ride (安装后dos输入ride.py启动,如果启动不了,可以python安装路径\scripts\ride.py 手动双击启动)
4.安装AppiumLibrary : pip install robotframework-appiumlibrary
5.安装RequestsLibrary :pip install robotframework-requests
6.安装selenium2library:pip install robotframework-selenium2library
7.安装wxPython:pip install wxPython
以上安装都可以选择使用豆瓣源(方法如下):
“-i http://pypi.douban.com/simple/”

二、你的第一行rf代码-Hello world

在这里插入图片描述
启动ride后,新建一个项目,点击左上角file,选择new project,弹出窗口
在这里插入图片描述
name处写上你的项目名称,我这里起名firstRF。
在这里插入图片描述
在新建的项目上,右键点击,选择new suite,填上name,这里正式的项目是要在多建一层文件夹的,这里为了方便,直接键文件了。
在这里插入图片描述
右键刚建好的测试套件,选择New Test Case ,创建一个测试用例
在这里插入图片描述
name这里我输入测试用例,点击确定,下面我们就可以编辑用例了!
在这里插入图片描述

在右侧edit页面,第一个空格处输入log关键字,第二个空格处输入hello world
在这里插入图片描述
切换tab,选择run,点击start,下面可以看到hello world已经打印出来了
在这里插入图片描述
以上,一个简单的hello world就完成了,怎么样,很简单把?下面说一下ride常用的两个功能:

三、RIDE的常用功能

第一个关键字搜索

可以直接按F5或者,点击工具栏上的“K”
在这里插入图片描述

第二个关键字补全

使用ctrl+shift+空格(不生效的话可能是与你的输入法有冲突,取消输入法的Ctrl+空格热键)

四、常用的关键字

定义变量:${a}
#赋值:Set Variable
eg: ${a} set variable 100
#打印日志:log
eg: log ${a}
#注释:comment或者像python使用#
eg:comment xxx   #这是注释
#创建列表: create list
eg: ${list} create list 开发  测试  产品
#睡眠:sleep
eg: sleep 3
#获取系统时间: get time
eg: ${time} get time
#拼接字符串:catenate  (拼接中间会有空格,需要去掉空格可在catenate后加SEPARATOR=)
eg: ${str} catenate hello world
eg: $s{str} catenate SEPARATOR=  hello world
返回:[return]   注:中括号不可以省略
eg: [return]  xxx
#创建一个字典:
${age}    Evaluate    int(18)
${dict}    Create Dictionary    name=liu    age=${age}
log    ${dict}
# 获取字典所有的key:需要导入collections包
${keys}    Get Dictionary Keys    ${dict}
log    ${keys}
# 同理,获取字典所有的values
${values}    Get Dictionary Values    ${dict}
log    ${values}
# 根据字典中的key获取values的值
${s}    Get From Dictionary    ${dict}    name
log    ${s}
# if条件判断(关键字必须大写,涉及到换行要用"...")
Run Keyword If    1==1    log    1
...    ELSE IF    log    2
...    ELSE    log    3

好了,掌握了上面这些关键字,想必你已经跃跃欲试了,那下面我们就进入正题,可以开始写rf程序了。

五、 web ui自动化

首先,你点击测试套件,选择右侧的edit栏目,然后点击library,在这里引入最开始第一章我们通过pip安装的包,web自动化的话,我们选择Selenium2Library
在这里插入图片描述
在这里插入图片描述
这里注意,区分大小写,点击ok确定导入,导入后字体是黑色的(如下图),就表示成功拉!!!红色就是有错误,这时候你需要检查下你的拼写。
成功
在测试套件下,我们在新建一个测试用例,就叫web自动化把。然后就可以进入编码环节了。
web自动化,首先第一步,就是打开浏览器了。这里我们选择谷歌浏览器打开百度页面。

一、web自动化-打开浏览器

#打开浏览器	Open Browser关键字
Open Browser    http://www.baidu.com    chrome 

在这里插入图片描述
这里注意,Open Browser变成了蓝色,就表示该关键字可用。勾选web自动化,点击2步的运行,就可以看到谷歌浏览器,打开了百度首页(此处需要配置谷歌浏览器的驱动,具体可以参考下之前的selenium文章:https://blog.csdn.net/u010799534/article/details/121422335)

二、搜索robotframework,点击搜索

这里需要一点,元素定位的知识。打开百度页面,F12查看开发者工具elements的栏目.点击1箭头,然后点一下2箭头,就能看到3所示的位置了
在这里插入图片描述
3所处于的位置,就是百度搜索栏目,我们想要通过自动化在里面输入“robotframework”,后点击搜索按钮,属性之中有id。这是我们首选的定位方式(在没有id的情况,我们大多会使用xpath,不了解的可以看下https://blog.csdn.net/u010799534/article/details/122081415)。
在这里插入图片描述
在使用同样的方式,找到百度一下的按钮。id是su。
我们开始编写我们的第二行rf代码:这里涉及到我们第二个关键字
Get WebElement表示获取元素的位置信息

${search}    Get WebElement    id=kw

这里我们用search变量接受,get webelement的返回值,然后,输入“robotframework”,这里第三个关键字Input Text表示输入文本

# 文本框输入robotframework
Input Text    ${search}    robotframework

下面是我们的第四个关键字 Click Element,顾名思义,点击元素的意思。

# 点击百度一下
Click Element    id=su

这里,就其实看到,我们程序的完整过程了。下面是完整代码:

web自动化
    Open Browser    http://www.baidu.com    chrome
    ${search}    Get WebElement    id=kw
    Input Text    ${search}    robotframework
    Click Element    id=su
    sleep    5
    Close Browser

在这里插入图片描述
以上就是web ui的简单入门···

六、app 自动化

前置条件:

1.lib包

与web自动化一样,开始之前需要导入一个lib包,app自动化,需要的是AppiumLibrary,在第一章我们已经安装过了。

2.appium的环境

此内容不是本章内容重点,该链接有大概介绍:https://blog.csdn.net/u010799534/article/details/121541972,或选择其他博客学习。

启动你的app

如果你有用python编写过基于appium的自动化的话,这块对你来说,应该是so easy的。
初始化需要的属性与python编写如出一辙,与web ui自动化一样,所有的操作,也都是要依靠关键字的!!!
第一个关键字:Open Application,鼠标放在关键字上按住ctrl键,就可以看到该关键字的入参,如下:
在这里插入图片描述
按照Examples输入需要的字段,例如:

Open Application    http://127.0.0.1:4723/wd/hub    platformName=Android    platformVersion=${Android_platformVersion}    udid=${udid}    appPackage=${Android_appPackage}    appActivity=${Android_appActivity}    noreset=false    newCommandTimeout=${timetou}

就可以了。别忘了启动你的appium服务,我这边是使用的appium server gui在这里插入图片描述
在这里插入图片描述
此处端口应与你open application后面的一致!点击运行,就可以打开你的app了。剩下的操作,与web自动化就很像了。也是依靠关键字,进行一些点击,等待的操作。

七、自动化中常用关键字

id=xxx表示元素定位,非固定写法,八大元素定位方式均可

1.页面中包含该元素

Wait Until Page Contains Element  id=xxxx

2.等待元素可见

Wait Until Element Is Visible	id=xxx

3.点击元素

Click Element	id=xxxx
Press Keys 要点击的元素	enter

4.输入文本内容

input text	id=xxx	123
Input Password	id=xxx	123

5.截图到指定位置

Capture Page Screenshot	D:/xxx.png

6.获取元素

Get WebElement	id=xxx

7.正则

${正则后的值} Should Match Regexp	${正则前的值}	正则表达式
eg:${url}	Should Match Regexp	${str}	[(](.*?)[)]

8.获取指定元素的大小

Get Element Size	id=xxx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

robot framework实现web和app自动化 的相关文章

随机推荐

  • 【读书笔记】好好学习-个人知识管理精进指南

    文章目录 引言 什么是知识 第一章 知识管理与认知优势 在海量信息即时获取时代 我们拼什么 如何提升认知深度 为什么大多数人的学习层次上不去 到底哪些知识值得学 第二章 掌握临界知识的底层思维与方法 跳出 低水平勤奋陷阱 学习临界知识需要具
  • Win32 Application 、Win32 Console Application、MFC工程项目

    Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序 Win32 Application 是标准 windows程序 完全拥有windows的特性 也即我们常说的窗
  • 基于cnn-lstm的交通流量预测

    目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的结构 CNN LSTM结构 卷积神经网络CNN LSTM交通流量预测 基本结构 主要参数 MATALB代码 结果图 展望 背影 现在生活 为节能减排 减少电
  • ubuntu 18.04 中 eBPF samples/bpf 编译

    1 history 信息 一次成功编译 bpf 后执行 history 得到的信息 yingzhi yingzhi Host ex ex kernel linux 5 4 history 1 ls 2 mkdir ex 3 cd ex 4
  • "wordcloud2"

    OUTLINE 相关的可以生成词云的途径 wordcloud2 相关的可以生成词云的途径 wordle 介绍 从文本生成词云图 网址 http www wordle net 优点 及时调用 缺点 电脑需已安装Java 对中文不友好 成图 w
  • Proxy(代理) ARP作用及原理

    概述 代理ARP是ARP协议的一个变种 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信 网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答 代理ARP就是将一个主机作为对另一个主
  • 解决uniapp的checkBox取消选中

  • 递归函数详解

    文章目录 1 什么是递归函数 2 递归求阶乘 3 递归的进入 4 递归的退出 5 递归的条件 1 什么是递归函数 一个函数在它的函数体内调用它自身称为递归调用 这种函数称为递归函数 执行递归函数将反复调用其自身 每调用一次就进入新的一层 当
  • IPv6详解

    定义 128bit冒号分16进制 详解 2001 5 23位 24 32位 33 48位 49 64位 固定开头 regisrty isp prefix site prefix subnet prefix 地址类型 设备没有获取ipv6地址
  • 计算机编码发展历史和编码方式

    编码是信息从一种形式或格式转换为另一种形式的过程 也称为计算机编程语言的代码简称编码 用预先规定的方法将文字 数字或其它对象编成数码 或将信息 数据转换成规定的电脉冲信号 编码在电子计算机 电视 遥控和通讯等方面广泛使用 解码 是编码的逆过
  • 【Seq2Seq】卷积序列到序列学习

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • c#之sealed关键字

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks namespace
  • 仙境传说RO:NPC对话

    仙境传说RO NPC对话 mes next close函数用法详解 大家好 我是艾西 今天跟大家讲解下仙境传说mes next close函数 在游戏中所有的NPC对话都是用mes函数来创建的 我们先打开官方文档的script comman
  • win10系统打开文件安装软件总是弹出安全警告解决办法

    描述 win10系统打开文件安装软件总是弹出安全警告解决办法 步骤 win键 R 输入gpedit msc 点击用户配置 gt 管理模板 gt windows组件 gt 附件管理器文件夹 找到右侧的窗口中找到中等风险文件类型的包含列表设置
  • DemuxException: type = CodecUnsupported, info = Flv: Unsupported codec in video frame: 2

    使用ffmpeg推流到nginx服务器 带http flv module插件 ffmpeg re i rtsp admin qwer1234QWER 10 0 10 3 554 h264 ch1 sub av stream f flv rt
  • 2021-01-05

    c语言 郝斌 p141 malloc函数介绍 include
  • Swagger类的配置

    1 引入相关依赖
  • 华为OD机试 - TLV解析 Ⅱ(Java)

    题目描述 两端通过TLV格式的报文来通信 现在收到对端的一个TLV格式的消息包 要求生成匹配后的 tag length valueOffset 列表 具体要求如下 1 消息包中多组tag length value紧密排列 其中tag len
  • python基础:Python判断文件是否存在的三种方法(os.path.exsist, os.path.isfile, try-catch)

    博客原文 http www spiderpy cn blog detail 28 目录 前言 一 使用os模块 二 使用try catch 前言 通常在读写文件之前 需要判断文件或目录是否存在 不然某些处理方法可能会使程序出错 所以最好在做
  • robot framework实现web和app自动化

    前言 本文 仅适用于完全没接触过rf的小白 也是作为自己学习的一个记录 一 工欲善其事必先利其器 第一步 环境安装 1 需要python环境 去官网下载python解释器 配置环境变量 2 安装robotframework pip inst