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 ...
随机推荐
- P5283 [十二省联考2019]异或粽子
考场上想到了没打完,细节思路还是不是很优,我原先的想法是每一次找完后标记那个点,下次再继续找(并不是这个意思,说不清楚)但实际上和平衡树一样加个大小就很好写了 #include<bits/std ...
- C# - 设计模式 - 钩子模式
钩子模式 问题场景 如何控制抽象类的行为?解决办法是靠钩子!抽象类公布一个虚方法,由子类自行决定是否重写它,抽象类以钩子做判定,如果返回真则执行某个方法,否则不执行.为什么钩子不能是抽象的,因为如果钩 ...
- Spring框架-IOC/DI详细学习
一.IOC/DI概念 参考博客:https://www.cnblogs.com/xdp-gacl/p/4249939.html IOC(inversion of control, 控制反转)是一种设计 ...
- python3三角函数
三角函数 acos(x) 返回x的反余弦弧度值. asin(x) 返回x的反正弦弧度值. atan(x) 返回x的反正切弧度值. atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切 ...
- referrer policy
我们知道,在页面引入图片.JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段.Referrer 在分析用户来源时 ...
- windows环境下curl 安装和使用
原文:https://blog.csdn.net/qq_21126979/article/details/78690960?locationNum=10&fps=1 一.curl 安装 cur ...
- PHP提取页面第一张图为缩略图的代码
<?php $p = '/<img.*?src=[\'|\"](.+?)[\'|\"].*?>/i'; preg_match_all($p,$str,$match ...
- js数据结构与算法——集合
<script> function Set(){ var items = {};//使用对象表示集合,因为js对象不允许一个键指向两个不同的值,保证集合里面的匀速唯一性 this.add ...
- Uni-app页面生命周期
学习任何框架必须将其生命周期了然于胸. uni-app支持如下页面生命周期函数: onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为object(用于页面传参),示例中可参考 onSh ...
- html获取输入框的值
https://zhinan.sogou.com/guide/detail/?id=316512383339