java -ui自动化初体验
本文来讲一下ui自动化的环境搭建,以及最初级的打开网页操作
说起ui自动化,想想大概是前年的时候我开始接触和学习的吧,怎么说呢无论是pc还是app,ios还是android,确实很神奇而且很华丽,但是成本很高,华而不实,对于测试而言恐怕编写成本和维护成本很高,但是收益比较有限,较为适合大公司吧,小公司建议谨慎使用,进入小公司做ui自动化的人也要注意,很难出成绩而且容易被开除,一般的出现了ui问题,往往客户会比你更快发现,我为了实现ui自动化用了失败重跑,连续错误才报错,邮件,关键字驱动等等总算是有一定的成就,,,这些事情将来再说
本文讲的是ui自动化是一个比较极端而且最简单的场景,刷访问量,,,
比方说一个网站或者是博客园的网站吧,有时候会有访问量,这时候如果用人手去刷会很痛苦,但是不刷又上不去,我们学了ui自动化后会想,也许我能把自动化为我所用?然后本文来大概介绍一下,基本从零开始吧
所谓的ui自动化原理,网上有很多介绍,我还是使用java来做,本人并不是想说我比他人强,说的透彻,所以大家可以先去这个地方来简单了解一下ui自动化原理http://www.cnblogs.com/TankXiao/archive/2012/03/29/2418219.html,这哥们确实比较nb,可惜还是一直在做测试,哎,很无语
我先大概说一下,所谓ui自动化,主要是使用代码方式(java或者python或者其他)来启动一个特定的浏览器driver,实现打开浏览器并利用该浏览器做一些代码可以操纵的操作,然后利用代码对页面中一些东西进行校验,从而达到与人打开页面检测的相同效果,所以我们可以明白,java的ui自动化主要是几个部分,本地java环境->selenium jar包->java代码启动浏览器(一般在before中)->一些操作->关闭浏览器(一般在after中)->从新打开一个浏览器->下一个流程校验->,,,
故首先读者应下载一个selenium的jar包导入工程,在下载一个浏览器的模拟器然后创建一个方法,写上如下代码
package zlr
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; import static org.junit.Assert.fail; public class testzhiyinlou {
private WebDriver driver;//声名一个driver
private StringBuffer verificationErrors = new StringBuffer(); @Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "E:\\driver\\chromedriver.exe");//指定要启动的浏览器driver路径
driver = new ChromeDriver();
}
@After
public void TearDown() throws Exception {
driver.quit();//结束后浏览器退出
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
@Test
public void testszlr1() throws Exception {
driver.get("https://www.cnblogs.com/xuezhezlr/p/9127378.html");//浏览器打开一个网页
}
}
上文中代码已经注释的比较完整了,针对ui自动化而言,代码中会把要打开和操作的浏览器定为一个driver,而相关的操作都要在这个driver中进行的,读者需要从一些网站上下载selenium包和要打开的浏览器的driver,下载后写上上面的代码不报错说明,各个包是没啥问题的
按照道理说,点击执行就可以执行了,但是还没有执行,是为啥呢?
主要是因为代码中windows(或者mac)->java版本(1.6,1.7,1.8?)->selenium版本->浏览器版本不兼容导致的问题,出现上述问题,应重新下载新的浏览器driver来操作
针对driver而言呢,总得来说,是这样的,火狐浏览器是不需要配置的,会使用自己自带的driver,但是不保证能打开页面并对元素进行操纵,其他浏览器基本都是要使用driver的,还有几个比较特殊的浏览器,无痕浏览器,不会在电脑上出现页面进行操作,而是直接使用内核来进行操作
上述就是ui自动化的演示,总得来说可以在页面中打开多个浏览器并刷访问量,另一方面可以利用定时任务来控制刷的频率
java -ui自动化初体验的更多相关文章
- Apache Beam入门及Java SDK开发初体验
1 什么是Apache Beam Apache Beam是一个开源的统一的大数据编程模型,它本身并不提供执行引擎,而是支持各种平台如GCP Dataflow.Spark.Flink等.通过Apache ...
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...
- 阿里巴巴 Java 开发规约插件初体验
阿里巴巴 Java 开发手册 又一次来谈<阿里巴巴 Java 开发手册>,经过这大半年的版本迭代,这本阿里工程师们总结出来避免写出那么多 Bug 的规范,对于 Java 开发者简直就是必备 ...
- Android开发学习之路--UI之初体验
之前都是学习Activity,对于布局都没有做过学习,这里就简单学习下吧.下面看下Android Studio下有哪些控件: 这里分为Widgets,Text Fields,Containers,Da ...
- java画图之初体验
1.实现画图程序所需的API类 JFrame JButton ActionListener 动作事件接口 ActionEvent ...
- 阿里云部署Java web项目初体验(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...
- java的多线程初体验
这里以车站售票作为模拟场景,多个票务人员同时出售某一列高铁(G250?)的车票,售票的基本保证有2点: 1.不能售出多于预定限额的车票. 2.不能售出具有相同座位的车票. 初学java,有不当的地方各 ...
- 阿里云部署Java web项目初体验
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了怎样在阿里云上安装JDK.Tomcat以及其配置过程. 最后以一个实例来演 ...
- Selenium2自动化——初体验
一.Windows下的环境搭建 1.安装Python 访问Python官网:https://www.python.org/ 2.安装setuptools与pip setuptools是Python e ...
随机推荐
- 1. Nagios和 NagiosQL安装及配置
目录 1. Nagios 和 NagiosQL简介 2. Nagios+NagiosQL搭建环境说明 3. Nagios.Nagios-plugins和NagiosQL的安装 4. 配置NagiosQ ...
- css 修改placeholder的颜色
input::-webkit-input-placeholder { color: #ff0000; } input::-moz-input-placeholder { color: #ff0000; ...
- Now you can provide attr "wx:key" for a "wx:for" to improve performance. 微信小程序警告
Now you can provide attr "wx:key" for a "wx:for" to improve performance为警告,不处理不影 ...
- es集群数据库~运维相关
一 数据同步方案 1 ES-JDBC 不能实现删除同步操作.MYSQL如果删除,ES不会删除 2 logstash-input-jdbc 能实现insert update,但是仍然不能实现删除 ...
- sqli注入--利用information_schema配合双查询报错注入
目录 sqli-labs 5.6双查询报错注入通关 0x01 获取目标库名 0x02 获取库中表的数量 0x03 获取库中表名 0x04 获取目标表中的列数 0x05 获取目标表的列名 0x06 从列 ...
- PHP笔记:单引号与双引号区别
PHP笔记:单引号与双引号区别 php中使用字符串时,可以使用单引号或者双引号,这里总结一下二者的不同: 一.解析字符内容 双引号中的变量会会经过编译器解析 单引号中的变量不会被解析 如下: < ...
- boston_housing-多分类问题
from keras.datasets import boston_housing import numpy as np from keras import models from keras imp ...
- JUC--volatiley&CAS
public class VolatileTest { public static void main(String[] args) { ThreadDemo td = new ThreadDemo( ...
- 使用docker中mysql镜像
1.拉取mysql镜像 docker pull mysql:5.6 2.运行mysql的镜像生成一个正在运行的容器,可以通过docker contain ls得到容器的id信息 docker run ...
- 基于Https协议返回Jason字符串
一:代码结构 二:框架结果: spring+springMvc+springJdbc 三:源代码 1:Ctrl 层 package com.todaytech.yth.gdsd.base.DataIn ...