jenkins+selenium+python实现web自动化测试

jenkins+selenium可以做到对web自动化的持续集成。

Jenkins的基本操作:

一、新建视图及job

新建视图:

新建job:

可以选择构建一个自由风格的软件项目或者复制已有的item

二、准备工作:

安装Jenkins插件,SSH plugin ,Email Extension Plugin ,Hudson Seleniumhq plugin

点击系统管理->管理插件

在可选插件面板Filter中输入插件名,勾选复选框,点击直接安装,安装完成后重启Jenkins

三、重启后操作:

1.将job之间建立连接

可新增一个 Post-build Actions 来配置下一个需要构建的job

Trigger only if build is stable:只有本次构建成功才执行下一个job

Trigger even if the build is unstable:如果本次构建不稳定也可以执行下一个job,但是失败则停止构建

Trigger even if the build fails:就算本次构建失败也可以执行下一个job

2.配置自动化时间

在上步骤创建的job中添加自动执行时间表

打开job配置

勾选构建触发器的Build periodically

 

时间格式:* * * * *

*:分钟 小时 日 月 星期

*表示都

MINUTE Minutes within the hour (0–59)

HOUR   The hour of the day (0–23)

DOM    The day of the month (1–31)

MONTH  The month (1–12)

DOW    The day of the week (0–7) where 0 and 7 are Sunday.

*此处分钟我并不明白为什么不能写数字

PS:点击“?”可查看配置要求

3.配置Jenkins的邮件

进入系统管理->系统设置

配置邮件通知:

*之前使用了“使用SMTP认证”,反而无法发送邮件

配置Jenkins Location的系统管理员邮件地址:

配置默认邮件格式:

Extended E-mail Notification

主要修改:

Default Recipients:接收邮件地址,以“,”分隔

Default Subject:默认邮件主题

Default Content:默认邮件内容

修改job中的邮件发送配置

点击job名称,点击配置

 

*其他都可以按照默认的来,主要修改Triggers

在Add Trigger中添加Failure - Any , Unstable(Test Failures),在构建失败或不稳定时都会发送邮件,如果没有添加任何Trigger,将不会发送任何邮件出来

以上jenkins的配置完成了。

然后实现安装在Linux的Jenkins可以执行Windows下的selenium test case

一、配置Jenkins的Windows节点

1、点击左侧面板中:

系统管理->管理节点

2、点击左侧面板:新建节点

3、输入节点名称,选择Dumb Slave,点击OK

 

4、输入相关配置,点击save

# of executors:同时可运行的job数量,默认为1

远程工作目录:目标Windows的工作目录

标签:用来指定job以什么方式来进行构建

用法:选择“只允许运行绑定到这台机器的job”

启动方法:选择“Launch slave agents via Java Web Start”,Windows机器推荐选择该方法

* 其他可随意或默认

5、save成功后出现以下记录

6、配置Windows机器

在目标Windows目录中创建上述的远程工作目录:E:\Jenkins

点击机器名:Windows_demo,出现如下页面:

 

将Run from slave command line下的slave.jar下载到远程工作目录下,同时将Java命令复制到txt文件中,保存成bat文件。

双击bat文件,建立Windows与Jenkins之间的联系。

* 可将open_connecte.bat拖至win->all programs->startup,开机自启动

在管理节点中可看到连接信息(37与38就是上述过程创建的机器):

 

二、在远程工作目录中安装selenium-server

双击bat文件,建立Windows与Jenkins之间的联系后,会在E:\jenkins中出现workspace文件夹,用来存放job信息。

1、在workspace中创建用来存放test case的文件夹:Test_script

存放test case

*不要出现中文的文件名,存放suite格式的test case

2、下载selenium-server-standalone-2.47.1.jar存放至E:\jenkins\workspace

3、新建以Windows机器执行的job

点击Jenkins的新建,输入Item名称,选择“构建一个自由风格的软件项目”,点击OK:

 

项目设置中,勾选Restrict where this project can be run,同时在Label Expression中输入上述创建的标签,连接到刚刚建立的节点。

增加构建步骤方式一:选择SeleniumHQ htmlSuite Run:

配置SeleniumHQ htmlSuite Run:

browser:运行脚本的浏览器,可输入*firefox,*chrome,*iexplorer等

startURL:使用的tomcat路径

suiteFile:脚本路径

resultFile:测试结果保存路径,最好保存在workspace下

other:可配置端口号等

* 使用SeleniumHQ htmlSuite Run配置时还需配置全局配置

进入系统管理->系统设置

*该jar包是用来启动selenium的

 

增加构建步骤方式二:使用batch command

set datetime=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

java -jar E:\jenkins\workspace\selenium-server-standalone-2.47.1.jar -htmlSuite "*firefox" "http://localhost:8080/" "E:\Jenkins\workspace\test1\Test_script\login-suite.html" "E:\Jenkins\workspace\test1\%datetime%.html"

* datetime的设置,可以按照需要的方式设置,参考:

上述代码的主要功能为启动selenium,并且创建一个以当前日期时间为名的HTML文件,并将结果复制到该文件中。

* 需注意路径中不能出现空格,如需要出现空格,必须将路径用""包含

* 估计所有的Windows机器都使用同一个jar,需验证

最后一步,点击构建。

Selenium IDE 的用法可以参考网上的《selenium中文使用手册》

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/297292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速入门Visual Studio 2022开发.Net Framework研发环境指南

IDE工具 Visual Studio 2022 Vs2022企业版 - VisualStudioSetup.exe Visual Studio Code VSCodeUserSetup-x64-1.66.2.exeVSCodeUserSetup-x64-1.67.0-insider.exe IDE环境 编程字体YaHei.Consolas YaHei.Consolas.1.12.ttf IDE插件 Visual Studio Code常用插件 Chinese…

分布式锁3: zk实现分布式锁4 使用临时顺序节点+watch监听+可重入(threadLocal)

一 zk实现分布式锁的可重入性 1.1 使用ThreadLocal属性 引入ThreadLocal线程局部变量保证zk分布式锁的可重入性。 1.2 关键代码说明 1.3 代码 1.3.1 初始化客户端 1.3.2 分布式锁代码 package com.atguigu.distributed.lock.config;import com.baomidou.mybatisplus.core…

Java:Lambda表达式、方法引用

文章目录 1、Lambda表达式1.1 Lambda表达式体验1.2 Lambda表达式的省略形式1.3 Lambda表达式练习 2、方法引用体验3、方法引用符4、引用静态方法5、引用对象的实例方法6、引用类的实例方法7、引用构造方法8、引用数组的构造方法9、方法引用练习9.1 练习19.2 练习29.3 练习3 10、…

差分电路原理以及为什么输出电压要偏移

我们在使用放大器芯片的时候,除了对放大器芯片本身应用外,通常还需要搭建一些外围电路来满足放大器芯片的使用条件,最终满足应用的功能,下面通过一个差分电路来熟悉这些应用。 差分运算放大电路,对共模信号得到有效抑…

函数——系统函数2(c++)

这次主要就只有一个系统函数: (注:a为变量名) 名称 用法 用处 sqrt sqrt(a) 算出变量a的平方根 (注:使用sqrt函数时,需要用到头文件 #i…

leetcode算法题之递归--综合练习(一)

此专题对我们之前所学的关于递归的内容进行一个整合,大家可以自行练习,提升自己的编码能力。 本章目录 1.找出所有子集的异或总和在求和2.全排列II3.电话号码的字母组合4.括号生成5.组合6.目标和7.组合总和8.字母大小写全排列9.优美的排列 1.找出所有子…

Python自动点击器

一、如何制作一个Python自动点击器? 当用户单击开始键时,代码将从键盘获取输入,并在用户单击退出键时终止自动点击器,自动点击器开始单击指针放置在屏幕上的任何位置。我们将在这里使用pynput模块。 二、什么是自动点击器&#…

FineBI实战(1):mysql实战案例简介

下面我通过案例来介绍FineBI的使用。 1 业务背景介绍 本案例围绕某个互联网小型电商的订单业务来开发。某电商公司,每天都有一些的用户会在线上采购商品,该电商公司想通过数据分析,查看每一天的电商经营情况。例如:电商公司的运…

并发(2)

目录 6.通常线程有哪几种使用方式? 7.基础线程机制有哪些? 8.线程的中断方式有哪些? 9.线程的互斥同步方式有哪些?如何比较和选择? 10.Synchronized可以作用在哪里? 6.通常线程有哪几种使用方式&#x…

Python基础知识总结3-面向对象进阶知识

面向对象三大特征介绍 继承子类扩展父类语法格式关于构造函数:类成员的继承和重写查看类的继承层次结构 object根类dir() 查看对象属性重写 __str__() 方法 多重继承MRO方法解析顺序super()获得父类定义多态特殊方法和运算符重载特殊属性 对象的浅拷贝和深拷贝组合_…

【提示学习论文五】Conditional Prompt Learning for Vision-Language Models论文原理及复现工作

Conditional Prompt Learning for Vision-Language Models 视觉语言模型的条件提示学习 文章介绍 这篇文章于2022年发表在CVPR(Conference on Computer Vision and Pattern Recognition),作者是kaiyang.zhou, jingkang001, ccloy, ziwei.li…

PostgreSQL的常见错误和解决方法

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在学习新的东西时,会犯很多的错误,会遇到很多坑。我们在填坑与犯错中不断进步成长。 以下是在学习pgsql中…

【QT】自定义代理类

目录 1 我们为什么要使用自定义代理类? 2 自定义代理类的基本设计要求 3 自定义代理的功能 4 基于QSpinBox的自定义代理类 5 自定义代理类的使用 1 我们为什么要使用自定义代理类? 传统的模型-视图框架可以让我们实现逻辑展示相分离,我们…

trino-435:dynamic catalog数据库存储代码实现

一、dynamic catalog数据库存储源码分析 dynamic catalog的实现主要涉及到两个类:CoordinatorDynamicCatalogManager、WorkerDynamicCatalogManager,这两个类的详细信息如下: 这两个类主要提供了对catalog的增删改查的方法。trino-435源码中…

C++补充内容--EasyX-UI界面

esay x 其他 地图打印(利用二维数组) 双缓冲 当我们绘制一张图 然后另一张图盖住前一张图的某个部分的时候 由于while的存在 会导致 两张图不停的闪烁 所以加入双缓冲可以解决这个问题 开启双缓冲 之后等待Flush或者End 才会进行图片的绘制 不然不会进行图片的绘制,这样就可…

docker拉取镜像提示 remote trust data does not exist for xxxxxx

1、How can I be sure that I am pulling a trusted image from docker 2、docker: you are not authorized to perform this operation: server returned 401. 以上两个问题可以试试以下解决办法 DOCKER_CONTENT_TRUSTfalse 本人是使用jenkins部署自己的项目到docker容器出现…

Linux基础——进程初识(二)

1. 对当前目录创建文件的理解 我们知道在创建一个文件时&#xff0c;它会被默认创建到当前目录下&#xff0c;那么它是如何知道当前目录的呢&#xff1f; 对于下面这样一段代码 #include <stdio.h> #include <unistd.h>int main() {fopen("tmp.txt", …

51单片机串行口相关知识

51单片机串行口相关知识 串行通信概念 计算机与外部通信方式就两种&#xff1a; 并行通信串行通信 两种通信方式的特点以及适用场景&#xff1a; 名称特点适用场景并行通信速度快&#xff0c;效率高&#xff0c;成本高适合短距离高速通信&#xff0c;如计算机内部各硬件之…

MySQL-DDL

DDL是数据定义语言&#xff0c;用来定义数据对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09; 数据库操作&#xff1a; 1.查询&#xff1a; 查询所有数据库&#xff1a;SHOW DATABASES; 查询当前数据库&#xff1a;SELECT DATABASE(); 2.创建&#xff1a; C…

性能分析与调优: Linux 使用 iperf3 进行TCP网络吞吐量测试

目录 一、实验 1.环境 2.TCP网络吞吐量的微观基准测试 二、问题 1.iperf参数有哪些 2.iperf如何二进制安装 一、实验 1.环境 &#xff08;1&#xff09;主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测…