今天这一篇,宏哥主要讲解:利用WebDriver 提供可以读取、添加和删除cookie 信息的相关操作方法。验证浏览器中是否存在某个cookie。原因是:因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的。
前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图。有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的web事件,假如你在运行脚本过程,windows上有一个其他软件弹出了一个购物的弹窗页面,这个时候就会干扰你截图。所以,有时候我们需要整个屏幕截图,这个时候我们就需要用到Robot这个类。原理大概是,从电脑屏幕左上角画一个长方形,一直画到屏幕右下角,然后得到File对象,在把这个File是用png还是jpg保存,复制到一个具体路径,这个就是截图的整个流程。
今天本来是要介绍远程测试的相关内容的,但是宏哥在操作服务器的时候干了件糊涂的事,事情经过是这样的:本来申请好的Windows服务器用来做演示的,可是服务器可能是局域网的,连百度都不能访问,宏哥想调试一下网络,禁用网卡,然后重启网卡,结果禁用后就连不上了。。。。就只能等服务器分配的管理员在物理机操作了,他给我分配的估计是虚拟机的服务器。唉,不能演示了,那么宏哥就来介绍java+ selenium自动化测试截图操作的实现,大致分为三篇,每篇介绍一种截图方法,你喜欢那种就用那种。那么宏哥今天就介绍第一剑客-TakeScreenshout。
今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题。如果不用dependsOnMethods,testNG会自动根据@Test方法名称的首字母排序来执行测试方法。但是有时,我们可能需要以特定顺序调用测试用例中的方法,或者可能希望在方法之间共享一些数据和状态。 TestNG支持这种依赖关系,因为它支持在测试方法之间显式依赖的声明。
前面宏哥一连几篇介绍如何通过开源jar包Log4j.jar、log4j2.jar和logback实现日志文件输出,Log4j和logback确实很强大,能生成三种日志文件,一种是保存到磁盘的日志文件,一种是控制台输出的日志,还有一种是HTML格式的日志文件。有时候,我们不一定都需要这些文件,在我们自动化测试框架里,我们只需要把日志文件保存到磁盘文件中,所以,这里介绍一种不用Log4j或者logback来实现日志文件写入和保存。
这一篇宏哥主要介绍webdriver在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接。举例来说,想必大家都应该用过前几年的12306网站购票,点击新版购票,是不是会出现如下的界面。宏哥又找了一个https的页面,如下图所示:
按照计划宏哥今天将介绍java+ selenium自动化测试截图操作实现的第三种截图方法,也就是截图的第三剑客 - 截取某个元素(或者目标区域)的图片。在测试的过程中,有时候不需要截取整个屏幕,只需要截取某个元素(或者目标区域)的图片,今天宏哥就来讲解和分享这些内容。
今天本来是打算实践应用一下前边的知识点,但是忘记漏了依赖的一个知识点,宏哥个人觉得还是比较重要的,所以今天先说这个,下一篇再讲解和分享实际应用。今天主要讲解一下依赖测试的依赖机制。
我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据。网页上日历控件一般,是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期。这一篇,宏哥就来介绍一下日历控件是如何用selenium实现自动化。
本基于java+网络爬虫+BS架构实现的互联网订餐网站,订餐管理系统,系统采用多层B/S软件架构,采用java 编程语言开发技术实现互联网餐饮网站美食数据的分析抓取,实时获取第三方美食信息,提供完善的在线用户选购美食订餐,添加购物车,选购下单等操作。系统后台提供管理员用户使用,提供针对美食数据的在线管理,用户管理,订单管理,美食分类管理等。
经过宏哥长时间的查找,终于找到了一个含有iframe的网页。所以今天这一篇的主要内容就是用这个网页的iframe,宏哥给小伙伴或者童鞋们演示一下,在处理过程中遇到的问题以及宏哥是如何解决的。
前面宏哥介绍了几种关于时间等待的方法,也提到了,在实际自动化测试脚本开发过程,百分之90的报错是和元素因为时间不同步而发生报错。本文介绍如何新建一个自定义的类库来解决这个元素同步问题。这样,我们在写脚本的时候,就直接调用该类方法就可以。
上一篇介绍了POM的基础理论知识和非POM方式写脚本,这篇介绍利用页面工厂类(page factory)去实现POM,通过查看PageFactory类,我们可以知道它是一个初始化一个页面实例的功能,在实例化该页面对象时候,也会一起实例化该页面的元素定位。
本基于java+路径规划+CS架构实现的A星算法求解最短路径问题演示程序,系统采用多层C/S软件架构,采用java 编程语言开发技术实现A*算法求解地图中的最短路径问题,实时获取计算用户在地图中设置的障碍点信息,计算可以完成路径规划的最短路径,提供完分析最短路径长度,重置地图,查看程序运行报告等功能,并且在程序运行界面提供完善的规则说明等。
上一篇文章中宏哥简单的讲解了一下通过xml文件传递参数,这一篇宏哥讲解通过通过@DataProvider传递参数,也就是我们常说的数据驱动测试。如何利用TestNG实现DDT(数据驱动测试 Data Driver Test),什么是数据驱动测试呢?且听宏哥娓娓道来。
按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位、其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位)。
jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有java版的selenium,因为不会Python,或者现在大多数企业和公司还是把java奉在神坛上,所以宏哥打算就换个口味,介绍一下java+ selenium自动化测试。大致和前边的python+selenium自动化测试差不多。基于java和selenium做自动化测试,俗话说:工欲善其事必先利其器;没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个IDE来进行开发,这里通过详细的讲解,介绍怎么搭建java和selenium开发环境,并提供一个基本入门的代码,后续逐步提供系列实践文章。
自动化测试中进行断言的时候,我们可能经常遇到的场景。从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言。这个时候就需要我们对字符串进行操作,宏哥这里介绍两种方法:正则和字符串切片函数split()。
为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志;(2)不同日志级别:调试、信息、警告和错误等也要分文件输出。所以宏哥今天主要介绍和分享的是:使用logback输出日志到不同文件。废话不说直入主题。
有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作。比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段。关于鼠标悬停,selenium把这个方法放在了Actions.java文件中,先来看看鼠标悬停出现下拉菜单的情况。
上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作。
首先: 我想要告诉你的是学习Java不难,但是也会很艰辛的敲代码。Java程序员经常需要加班,学之前要作好心理准备。其次一旦下定决心学java了,一定要坚持下去,不要半途而废。
TestNG为日志记录和报告提供的不同选项。现在,宏哥讲解分享如何开始使用它们。首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录。
前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册、接收和发送过程。建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分,本文不再赘述。 1.广播的注册过程 BroadcastReceiver的注册分为两种,分别是静态注册和动态注册,静态注册在应用安装时由PackageManagerService来完成注册过程,关于这一过程,我会在后续的介绍PackageManagerService文章中详细介绍。这里只介绍BroadcastRe
上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM。
作为一名Android开发人员,手中拿着的应该是Android手机,不然会不会觉得哪里有些不对劲呢? 当我们手中拿的Android手机电量不足时,屏幕上会提示一条电量不足的信息,这些信息为什么在手机电量不足时会自动弹出来呢?
Fanout交换机是RabbitMQ中最简单的一种交换机类型。它会将所有接收到的消息广播给所有与之绑定的队列。无论消息的路由键是什么,Fanout交换机都会将消息发送给所有与之绑定的队列。这种广播模式非常适合需要将消息发送给多个消费者的场景。
0、需求 随着ELKStack在应用系统中的数据规模的急剧增长,每天千万级别数据量(存储大小:10000000*10k/1024/1024=95.37GB,假设单条数据10kB,实际远大于10KB)的
今天继续操作Excle,小伙伴或者童鞋们是不是觉得宏哥会介绍第三种工具操作Excle,今天不介绍了,有两种就够用了,其实一种就够用了,今天主要是来介绍如何使用不同的数据类型读取Excel文件。在实际测试中,您可能不得不处理除String之外的多个数据类型的Excel文件数据。 在本教程中,我们将使用不同的数据类型读取Java中的excel文件。
本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作。例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能。
上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享。
TestNG还为我们提供了测试的记录功能-日志。例如,在运行测试用例期间,用户希望在控制台中记录一些信息。信息可以是任何细节取决于目的。牢记我们正在使用Selenium进行测试,我们需要有助于用户理解测试步骤或测试用例执行期间的任何失败的信息。在TestNG Logs的帮助下,可以在Selenium测试用例执行期间启用日志记录。
广播消费: 当使用广播消费模式时, 消息队列 RocketMQ 会将每条消息推送给集群内所有注册过的客户端, 保证消息至少被每台机器消费一次。
在 Android 应用中,进行应用信息发布和数据传递的方式有多种,下面分别介绍两种较为常见的方式。
从这一篇开始介绍和分享Java+Selenium+POM的简单自动化测试框架设计。第一个设计点,就是支持跨浏览器测试。
其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下。报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果、失败点和失败原因。另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要。默认情况下,TestNG 会为其测试执行生成不同类型的报告。这包括一个 HTML 和一个 XML 报告输出。TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用。还有一个选项可以编写自己的记录器,TestNG 在运行时会通知这些记录器。
项目背景 因为最近一直都在搞数据挖掘类的项目,且现在国内的大数据潮火热。在前几天与群里的几位兄弟聊天所以有了做一个开源项目的想法,以前也搞过一个开源的项目,当时只是想把权限集中化做一下,项目的名称和地址是: http://www.cnblogs.com/skyme/archive/2012/02/07/2341364.html 但是后期实在工作太忙,就搁置在那里了。 所以现在又搞了一个,目前方向已经大致明确,下边介绍一下思路。 仿今日头条 java+新闻等+仿今日头条+大数据分析和挖掘(分类器+聚类分析+推
这种广播模式很像,就是生产者把通知的内容都录音到电台(exange)里,消费者如果想要听到,必须使用该频率的耳机(queue 绑定 exange)去听才能收到。所有消费者只要通过一个队列进行绑定,那么都能听到,都能消费该信息,这就是广播模式。
今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历多选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的多选按钮进行实战。
学习Java,需要下载并安装JDK(Java Development Kit,Java开发工具包);而为了能够快捷打开java程序,就需要按照操作系统的要求进行环境变量的配置。
在Java中,它是「Java」的核心库「java.utils.Observable」,
今天这一篇宏哥主要是讲解一下,如何使用list容器来遍历单选按钮。大致两部分内容:一部分是宏哥在本地弄的一个小demo,另一部分,宏哥是利用JQueryUI网站里的单选按钮进行实战。
本系列教程主要针对使用Java语言进行Rabbitmq的相关编程。阅读前请确认已经安装过rabbit服务。关于如何安装rabbitmq,请参考如何使用rabbitmq.
在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。
使用DatagramSocket代表UDP协议的Socket,DatagramSocket本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。
上一篇文章《浅析Spring中的事件驱动机制》简单介绍了Spring对事件的支持。Event的整个生命周期,从publisher发出,经过applicationContext容器通知到EventListener,都是发生在单个Spring容器中,而在分布式场景下,有些时候一个事件的产生,可能需要被多个实例响应,本文主要介绍分布式场景下的事件驱动机制,由于使用了Redis,ActiveMQ,也可以换一个名词来理解:分布式下的发布订阅模式。 JMS 在日常项目开发中,我们或多或少的发现一些包一些类位于java
Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用 于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源。
传统的消息传递模式有2种:队列( queue) 和(publish-subscribe)
webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelected表示查看元素是否被选中,一般用在勾选框中(多选或者单选),isDisplayed表示查看什么呢?
领取专属 10元无门槛券
手把手带您无忧上云