当前位置: 首页 > news >正文

robotframework自动化测试环境搭建

环境说明

  • win10
  • python版本:3.8.3rc1

安装清单

安装配置

selenium安装

首先检查pip命令是否安装:

C:\Users\name>pipUsage:pip <command> [options]Commands:install                     Install packages.download                    Download packages.uninstall                   Uninstall packages.freeze                      Output installed packages in requirements format.list                        List installed packages.show                        Show information about installed packages.check                       Verify installed packages have compatible dependencies.
……

确保pip命令可用,如果提示“pip不是内部或外部命令”,需要将将pip的安装目录(如:C:\Python36\Scripts)添加到环境变量PATH下面。

接下来通过pip命令安装Selenium:

C:\Users\name>pip install selenium
Collecting seleniumDownloading selenium-3.4.3-py2.py3-none-any.whl (931kB)26% |████████                       | 245kB 576kB/s eta 0:00:02    27% |█████████                      | 256kB 570kB/s eta 0:00:02    28% |██████████                     | 266kB 536kB/s eta 0:00:0    29% |███████████                    | 276kB 530kB/s eta 0:00:0    30% |████████████                   | 286kB 586kB/s eta 0:00:0
……

SeleniumLibrary安装


具体参见官网:https://github.com/robotframework/SeleniumLibrary

根据python版本,这里安装的是SeleniumLibrary 4.3,具体可以根据实际情况安装。

安装命令:

pip install robotframework-seleniumlibrary==4.2.0

robotframework安装配置
直接使用pip命令进行安装

pip install robotframework

ride安装
这里安装了最新的ride,安装参考官网给出的最新方法进行安装

pip install -U https://github.com/robotframework/RIDE/archive/master.zip

参考官网 https://github.com/robotframework/RIDE

AutoitLibrary安装
首先从官网下载autoit-v3-setup.exe根据提示安装即可,然后进行robotframework-autoitlibrary 1.2.5的安装,仍旧使用pip命令操作,如下

pip install robotframework-autoitlibrary

安装过程如下:

C:\Windows\system32>pip install robotframework-autoitlibrary
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting robotframework-autoitlibraryDownloading https://pypi.tuna.tsinghua.edu.cn/packages/c4/4f/7d4d4c6232b7bb4f5c78fee4e46691087adc7b248ffed71cc3dafcc0a507/robotframework-autoitlibrary-1.2.5.tar.gz (696 kB)|████████████████████████████████| 696 kB 930 kB/s
Requirement already satisfied: pywin32 in c:\users\admin\appdata\local\programs\python\python38\lib\site-packages (from robotframework-autoitlibrary) (227)
Requirement already satisfied: pillow in c:\users\admin\appdata\local\programs\python\python38\lib\site-packages (from robotframework-autoitlibrary) (7.1.2)
Using legacy setup.py install for robotframework-autoitlibrary, since package 'wheel' is not installed.
Installing collected packages: robotframework-autoitlibraryRunning setup.py install for robotframework-autoitlibrary ... done
Successfully installed robotframework-autoitlibrary-1.2.5

安装完成之后,可以查看一下本机安装的软件信息,如下


C:\Windows\system32>pip list
Package                        Version
------------------------------ -----------
numpy                          1.255 173)">18.4
Pillow                         7.1.2
pip                            255 173)">20.1.1
Pygments                       2.6.1
Pypubsub                       4.0.3
pywin32                        227
robotframework                 3.2.1
robotframework-autoitlibrary   1.2.5
robotframework-ride            2.0b1.dev1
robotframework-seleniumlibrary 4.2.0
selenium                       3.255 173)">141.0
setuptools                     46.4.0
six                            1.255 173)">14.0
urllib3                        1.25.9
wxPython                       4.0.7.post2C:\Windows\system32>

安装autoit主要是为了进行文件上传的操作。

Autoit使用

安装完成Autoit之后,这里主要使用的是AutoItWindow Info(x64)、SciTE Script(x64)和Compile Script to .exe(x64)这三个工具。(因为本机是64位的,所有这里使用的都是64位)

首先打开AutoItWindow Info(x64),点击"Finder Tool"拖拽到上传文件选择页面,如图


可以看到AotuIt显示的信息,接下来就是使用SciTE Script(x64)进行编码操作,具体代码如下

$path = "C:\Users\admin\Postman\files\发票模块说明文档.doc"
ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开","","Edit1",$path)
sleep(2000)
ControlClick("打开","","Button1")

保存为au3的格式,然后再次使用Compile Script to .exe转换为exe格式。接下来就是robotframework中使用run关键字操作。

Allure报告集成jenkins
在编写robotframework脚本进行运行,可以集成到jenkins进行运行测试;使用jenkins运行生成比较完整的报告信息。有两种生成报告的方法,一种是使用robotframework自带的报告集成到jenkins查看报告信息,还有一种是使用allure生成的报告界面相对漂亮很多。

Robot Framework Plugin插件
使用Robot Framework Plugin插件来生成robotframework报告,首先需要在jenkins中安装这个查看,然后在项目中配置使用:如图

说明:

Thresholds for build result 这里根据测试用例执行的实际情况设置范围

Allure插件
另外一种是使用allure插件生成报告,首先安装allure插件,然后在项目中修改配置信息。

Allure库安装

pip install allure-robotframework

jenkins插件安装和配置

安装allure插件这里就不在说明,有疑问可以百度;接下来是Global Tool Configuration,如图


然后就是具体的项目配置信息,可以按照下面的操作一步步来进行:

第一步:设置自定义工作空间

这里因为jenkins的安装目录和本机运行的test测试用例目录不是同一个,所以针对项目设置自定义工作项目空间,如图


说明

  1. C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts是python的安装目录
  2. %WORKSPACE%默认取的是jenkins的工作路径,这里自定义设置的是项目的工作目录,即上图中设置的E:\Robot_Workspace
  3. robot --listener allure_robotframework,是RF和allure结合的固定命令,用户生成符合allure格式的日志文件。(网上很多都是pytest框架对应的命令,此处已经不要搞错,否则后面生成不了报告)
  4. %WORKSPACE%\allure-results,指定的allure格式的日志文件的存储路径
  5. E:\Robot_Workspace\rcm_beta\是要执行的测试用例的路径

第三步:构建后allure报告

选择"Allure Report",在path路径中设置存放allure相关日志文件的路径,此路径必须是“构建”命令中%WORKSPACE%后面的路径值,这里是allure-results ,如图


引用:https://www.jianshu.com/p/a0b58f02f4b5

这里有几个点必须注意,不然生成的报告显示的数据为空:

如果项目test的工作路径和jenkins的工作路径不一致,则必须在jenkins中自定义工作空间(或者把项目复制到jenkins的工作空间也是可行的~)
想要生成符合allure格式的报告,使用的命令robot --listener allure_robotframework
需要指定allure报告路径,即%WORKSPACE%\allure-results

配置完成之后,点击"立即构建",构建完成可以看到报告如下图所示


安装问题
日志乱码
安装完成后,第一次运行ride时,使用cmd正常显示中文,使用RIDE执行用例时控制台和日志均乱码:


具体解决:Lib\site-packages\robotide\contrib\testrunnertestrunnerplugin.py
将SYSTEM改成OUTPUT


来自 https://github.com/robotframework/RIDE/issues/1747

jenkins运行提示不是内部或外部命令
集成到jenkins执行robotframework时,提示pybot不是内部或外部命令

执行的命令:

call pybot.bat -d E:\outputdir E:\Robot_Workspace\rcm_beta
exit 0

第一步:首先在jenkins系统配置-全局属性中添加pybot命令的环境变量,如图

键:pybot
值:C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts

配置本地安装的python的安装路径。

第二步:需要切换要执行的命令到安装python的路径中,修改如下:

c:
cd C:\Users\admin\AppData\Local\Programs\Python\Python38\Scripts
call pybot.bat -d E:\outputdir E:\Robot_Workspace\rcm_beta
exit 0

再次运行就正常了。

最后:下方这份完整的【软件测试】视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

相关文章:

robotframework自动化测试环境搭建

环境说明 win10 python版本&#xff1a;3.8.3rc1 安装清单 安装配置 selenium安装 首先检查pip命令是否安装&#xff1a; C:\Users\name>pipUsage:pip <command> [options]Commands:install Install packages.download Do…...

尚硅谷《Redis7》(小白篇)

尚硅谷《Redis7 》&#xff08;小白篇&#xff09; 02 redis 是什么 官方网站&#xff1a; https://redis.io/ 作者 Git Hub https://github.com/antirez 03 04 05 能做什么 06 去哪下 Download https://redis.io/download/ redis中文文档 https://www.redis.com.cn/docu…...

并非从0开始的c++ day6

并非从0开始的c day6二级指针练习-文件读写位运算位逻辑运算符按位取反 ~位于&#xff08;AND&#xff09;&#xff1a;&位或&#xff08;OR&#xff09;&#xff1a; |位异或: ^移位运算符左移<<右移>>多维数组一维数组数组名一维数组名传入到函数参数中数组指…...

PMP考前冲刺2.22 | 2023新征程,一举拿证

承载2023新一年的好运让我们迈向PMP终点一起冲刺&#xff01;一起拿证&#xff01;每日5道PMP习题助大家上岸PMP&#xff01;&#xff01;&#xff01;题目1-2&#xff1a;1.在新产品开发过程中&#xff0c;项目经理关注到行业排名第一的公司刚刚发布同类型的产品。相比竞品&am…...

RxJava的订阅过程

要使用Rxjava首先要导入两个包&#xff0c;其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0首先从最基本的Observable的创建到订阅开始分析 Observable.create(new Observable.OnSubscribe<S…...

【2.22】MySQL、Redis、动态规划

认识Redis Redis是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成的&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列&#xff0c;分布式锁等场景。 Redis提供了多种数据类型来支持不同的业务场景&#xff0c;比如String(字符串…...

2年手动测试,裸辞后找不到工作怎么办?

我们可以从以下几个方面来具体分析下&#xff0c;想通了&#xff0c;理解透了&#xff0c;才能更好的利用资源提升自己。一、我会什么&#xff1f;先说第一个我会什么&#xff1f;第一反应&#xff1a;我只会功能测试&#xff0c;在之前的4年的中我只做了功能测试。内心存在一种…...

Leetcode6. N字形变换

一、题目描述&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; 之后&#xff0c;你的输出需要从左往右逐行读取&#xff0c;产…...

将Nginx 核心知识点扒了个底朝天(十)

ngx_http_upstream_module的作用是什么? ngx_http_upstream_module用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组。 什么是C10K问题? C10K问题是指无法同时处理大量客户端(10,000)的网络套接字。 Nginx是否支持将请求压…...

GPU显卡环境配置安装

前言 最近公司购买了一张RTX3090的显卡和一台新的服务器&#xff0c;然后对机器的GPU环境进行了安装和配置&#xff0c;然后简单记录一下 环境版本 操作系统&#xff1a;Centos7.8 显卡型号&#xff1a;RTX3090 Python版本&#xff1a;3.7.6 Tensorflow版本&#xff1a;2…...

CIMCAI super unmanned intelligent gate container damage detect

世界港航人工智能领军者企业CIMCAI中集飞瞳打造全球最先进超级智能闸口无人闸口ceaspectusG™视频流动态感知集装箱箱况残损检测箱况残损识别率99%以上&#xff0c;箱信息识别率99.95%以上World port shipping AI leader CIMCAIThe worlds most advanced super intelligent gat…...

web概念概述

软件架构&#xff1a;1. C/S: Client/Server 客户端/服务器端* 在用户本地有一个客户端程序&#xff0c;在远程有一个服务器端程序* 如&#xff1a;QQ&#xff0c;迅雷...* 优点&#xff1a;1. 用户体验好* 缺点&#xff1a;1. 开发、安装&#xff0c;部署&#xff0c;维护 麻烦…...

编译原理笔记(1)绪论

文章目录1.什么是编译2.编译系统的结构3.词法分析概述4.语法分析概述5.语义分析概述6.中间代码生成和后端概述1.什么是编译 编译的定义&#xff1a;将高级语言翻译成汇编语言或机器语言的过程。前者称为源语言&#xff0c;后者称为目标语言。 高级语言源程序的处理过程&#…...

MySQL(八)

服务器参数设置 general datadir/var/lib/mysql 数据文件存放的目录socket/var/lib/mysql/mysql.sock mysql.socket表示server和client在同一台服务器&#xff0c;并且使用localhost进行连接&#xff0c;就会使用socket进行连接pid_file/var/lib/mysql/mysql.pid 存储mysql的p…...

steam搬砖项目,小投入高回报,可放大操作,(内附教学资料)

我必须要说&#xff0c;steam搬砖项目就是全网门槛最低的副业&#xff0c;有手就行&#xff01; 本人90后底层员工一枚&#xff0c;新入csgo搬砖项目&#xff0c;轻松翻身 什么做抖音、海外问卷、直播卖货&#xff0c;电商等等对比我这个都是小钱。我这个方法是利用了大部分人…...

华为OD机试真题Python实现【最多提取子串数目】真题+解题思路+代码(20222023)

最多提取子串数目 题目 给定由 [a-z] 26 个英文小写字母组成的字符串 A 和 B,其中 A 中可能存在重复字母,B 中不会存在重复字母 现从字符串 A 中按规则挑选一些字母,可以组成字符串 B。 挑选规则如下: 1) 同一个位置的字母只能被挑选一次 2) 被挑选字母的相对先后顺序不…...

day32 多线程(上)

文章目录相关概念codeThreadTest01ThreadTest02 编写一个类&#xff0c;直接继承java.lang.Thread&#xff0c;重写run方法ThreadTest03 实现线程的第二种方法ThreadTest04 采用匿名内部类的方式ThreadTest05 获取线程名字ThreadTest06 sleep方法sleep面试题ThreadTest08 终止线…...

【flink】 各种join类型对比

表定义 动态表(dynamic table)&#xff1a;动态表是流的另一种表达方式&#xff0c;动态表作为一个逻辑的抽象概念&#xff0c;使我们更容易理解flink中将streaming发展到table这个层次的设计&#xff0c;本质都是对无边界、持续变更数据的表示形式&#xff0c;所以动态表与流之…...

常用正则表达式

一、校验数字的表达式 数字&#xff1a;^[0-9]*$ n位的数字&#xff1a;^\d{n}$ 至少n位的数字&#xff1a;^\d{n,}$ m-n位的数字&#xff1a;^\d{m,n}$ 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字&#xff1a;^([1-9][0-9]*)(.[0…...

PMP考试有没有什么技巧可以介绍一下么?

一、试题形式 ——中英文对照 即每道题都是一遍英文&#xff0c;一遍翻译的中文&#xff0c;在审题的时候有一些小的技巧需要注意。首先如果你的英文水平足够好&#xff0c;建议直接阅读原文。PMP试题毕竟是美国人出的&#xff0c;语言的组织、思想的表达&#xff0c;肯定更符…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...

02-性能方案设计

需求分析与测试设计 根据具体的性能测试需求&#xff0c;确定测试类型&#xff0c;以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通&#xff0c;初步确定压测方案及具体的性能指标QA完成性能测试设计后&#xff0c;需产出测试方案文档发送邮件到项目组&…...