junit

hive窗口函数lag与lead实际应用

梦想与她 提交于 2020-03-09 19:43:06
简介 lag函数用于把指定列向后移动多少行之后和原表拼接。 lag(column,n,default) lead(column,n,default) 其中 column表示要移动的列,n表示要移动多少行,default表示默认值,不给就是null 示例: select gid, lag(time,1,'0') over (partition by gid order by time) as lag_time, lead(time,1,'0') over (partition by gid order by time) as lead_time from user_order; 实例 考虑这样一个问题,我们要找出连续2个月都购买了某个指定商品的人,怎么处理? 很多同学可能首先考虑的是把时间处理成月份,然后根据用户id分组,统计月份大于2的就可以了。 如果问题变一点点,要找出在60天内至少购买过2次某个指定商品的人,怎么处理? 咋一看,一样的,实际上没有给出是哪60天,所以要计算所有订单时间的差值,然后找出时间差在60天范围之内的订单用户。 逻辑比较简单,但是处理起来不太还处理,不过如果知道lag或者lead函数,就变得非常简单了。 只需要把使用head函数,把后一次订单时间拼接上来,然后通过过滤器过滤一下就好了。 下面看一个代码示例,应该就清楚了。 代码实例 import org

自动化测试面试题及答案大全(2)

人盡茶涼 提交于 2020-03-09 12:20:47
自动化测试面试题及答案大全(2) 原创测试喵 最后发布于2019-04-18 09:40:05 阅读数 3425 收藏 展开 问题1:Selenium是什么,流行的版本有哪些? 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar selenium-server.jar // 在浏览器中运行一套Selenese脚本 java -jar selenium-server.jar -htmlSuite 问题3:在我的机器端口4444不是免费的。我怎样才能使用另一个端口? //你可以在运行selenium服务器时指定端口为 - Java -jar selenium-server.jar -port 5555 问题4:什么是Selenium Server,它与Selenium Hub有什么不同? Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。 Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid

Zookeeper API基础

我的未来我决定 提交于 2020-03-09 11:56:43
环境搭建 第一步:创建一个Maven工程,添加Maven依赖: < dependency > < groupId > junit </ groupId > < artifactId > junit </ artifactId > < version > 4.12 </ version > </ dependency > < dependency > < groupId > org.projectlombok </ groupId > < artifactId > lombok </ artifactId > < version > 1.18.4 </ version > </ dependency > < dependency > < groupId > org.apache.logging.log4j </ groupId > < artifactId > log4j-core </ artifactId > < version > 2.8.2 </ version > </ dependency > < dependency > < groupId > org.apache.zookeeper </ groupId > < artifactId > zookeeper </ artifactId > < version > 3.4.13 </ version > </

集成测试——Spring TestContext框架支持详细解说

大兔子大兔子 提交于 2020-03-09 11:17:50
概述 集成测试是在单元测试之上,通常是将一个或多个已进行过单元测试的组件组合起来完成的,即集成测试中一般不会出现Mock对象,都是实实在在的真实实现。 对于单元测试,如前边在进行数据访问层单元测试时,通过Mock HibernateTemplate对象然后将其注入到相应的DAO实现,此时单元测试只测试某层的某个功能是否正确,对其他层如何提供服务采用Mock方式提供。 对于集成测试,如要进行数据访问层集成测试时,需要实实在在的HibernateTemplate对象然后将其注入到相应的DAO实现,此时集成测试将不仅测试该层功能是否正确,还将测试服务提供者提供的服务是否正确执行。 使用Spring的一个好处是能非常简单的进行集成测试,无需依赖web服务器或应用服务器即可完成测试。Spring通过提供一套TestContext框架来简化集成测试,使用TestContext测试框架能获得许多好处,如Spring IoC容器缓存、事务管理、依赖注入、Spring测试支持类等等。 Spring TestContext框架支持 Spring TestContext框架提供了一些通用的集成测试支持,主要提供如下支持: 一、 上下文管理及缓存: 对于每一个测试用例(测试类)应该只有一个上下文,而不是每个测试方法都创建新的上下文 ,这样有助于减少启动容器的开销,提供测试效率

一名优秀的程序员,必备哪些要素

∥☆過路亽.° 提交于 2020-03-07 18:24:42
如何才能成为一名优秀的程序员呢? 如今程序员是一个很吃香的行业,专业出身,大牛带进门,培训机构出身等等,仿佛只要进了这个行业就可以年薪十几万, 程序员这么多,可是工资还是一层一层的划分,有人在十几万的年薪苦苦挣扎,有人在五六十万轻松自在 程序员之间的差距在于技术,在于你写的代码,手底下才能见真章不是吗? 那么成为一名优秀的程序员到底需要哪些要素呢? 一: 乐在学习,除了关注新的技术发展,也了解非技术知识的重要性 普通的程序员,通常是在需要某项技能时才会开始进行学习;杰出的程序员,对于各种知识都保持开放的学习心态。 二:务实但不固执 遵守「编程规范」是很少有开发人员能够做到这一点,尤其当「编程规范」不是由专业的程序开发人员所撰写的。 但是程序员的任务,是要制作可以解决问题的方案,而不是产出一个呈现完美技术的艺术品。 三 : 懂得放弃 在中国做软件的企业里有一个通病,就是喜欢堆砌功能,总梦想做一个大而全、一个万能的、一个放之四海皆可用的软件,但现实情况是,这的软件通常做不成功,很多半途而废。优秀的程序员知道何时如何放弃,当大限临近,人手不够,需求不清时,他们会果断的判断出那些功能应该延后,那些功能应该力保上线。 四 : 学习Java8 如果我没记错的话,已经 Java 14 了。但很遗憾的是,我的 IDE 中配置的 JDK 版本还停留在 Java 13,还有一个备用版本,就是 Java

Jenkins +JUnit

余生颓废 提交于 2020-03-07 06:01:29
1.环境   windows10 专业版   Jenkins 2.7   apache-ant-1.9.6   JDK1.8.0_20 2.整体思路   jdk:支持ant脚本中的编译、测试等target。   ant脚本:负责java代码的编译、JUnit。   Jenkins:调度触发ant脚本的执行。    3.开始练兵    3.1 项目整体结构 com.java.src下面放源码 MessageUtil.java com.java.test目录下放JUnit测试文件 TestMessageUtil.java build.xml文件放在根目录下,即位于AntJunit-v1.0目录下,和src位于同一级别。 3.2 项目源码 1 package com.java.src; 2 3 public class MessageUtil { 4 private String message; 5 6 //Constructor 7 //@param message to be printed 8 public MessageUtil(String message){ 9 this.message = message; 10 } 11 12 // prints the message 13 public String printMessage(){ 14 System.out

01 30Java中级之Eclipse开发工具

橙三吉。 提交于 2020-03-07 02:08:55
文章目录 1 Eclipse简介 2 使用JDT开发Java程序 3 代码调试 4 junit测试工具 1 Eclipse简介 Eclipse是现在一个比较大型的开源组织,其主要是以推广Java标准以及IDE为主。 Eclipse如果翻译成中文实际上的含义是“日蚀”(遮盖一切太阳的光芒),而当时面对于SUN公司而言这就是一个赤裸裸的挑衅,这个挑衅是由IBM发出的(在整个的Java领域上,真正使用到Java获得收益的只有IBM,而SUN公司虽然缔造了Java,可以没有获得多大的收益),Java后来的稳定发展很大程度上取决于IBM的技术推广,所以IBM一直很想得到Java语言的归属权。在2000年之后,世界上形成了所谓的开源风,而后IBM将Eclipse转送了现在的Eclipse组织,继续进行开源的IDE工具的推广。 Eclipse的前身是IBM推出的一个VisualAge开发工具,后来推出Eclipse之后可以很好的进行Java语言的开发,在Eclipse的开源之前,世界上使用最广泛(极其难用的)的Java开发工具Borland JBuilder。 Eclipse之中本身支持有:JDT、Junit、CVS客户端、插件开发等功能。 2 使用JDT开发Java程序 在Eclipse之中提供有JDT环境可以实现Java程序开发,下面是功能演示: 1、如果要进行项目开发

谈一谈JUnit神奇的报错 java.lang.Exception:No tests found matching

北城以北 提交于 2020-03-05 19:58:47
nitializationError(org.junit.runner.manipulation.Filter)或者No tests found matching异常, 1.最容易发现的错误,就如报错所说,没有找到test方法就是因为忘记在方法前加 @Test 注解了。 应该是Test注解类引用错了,请检查包路径是否为 org.junit.Test; 来源: CSDN 作者: mrmqmn 链接: https://blog.csdn.net/mrmqmn/article/details/104679081

Jenkins的安装、启动和配置

女生的网名这么多〃 提交于 2020-03-05 09:24:17
一、Jenkins的安装 1.前提条件:已经成功安装了JDK,因为jenkins是一款基于Java的持续集成工具。 2.准备工具:下载一个jenkins的war包。 3.启动方法:如把jenkins.war包放置在e盘根目录下,则打开cmd,进入e盘目录下,输入命令: java -jar jenkins.war ,就可以启动jenkins了。 也可以把启动命令写成一个批处理文件,startjenkins.bat,在里面贴上以下命令,以后点击该文件,就可以启动jenkins了。 e: java -jar jenkins.war 4.安装目录:jenkins的默认安装目录在C:\Users\Administrator\.jenkins下面 5.访问地址:http://localhost:8080/,配置成功后打开的界面 二、新建一个软件项目 1.点击上图中的新建,选择【新建一个自由风格的项目】 2.对项目进行配置,在general部分,点击【高级】,勾选使用自定义的工作空间,在目录里填写要进行持续集成的java工程目录,如我的是E:\workspace\ant_junit 3.源码管理,选择None即可 4.构建触发器,在日程表里填写五个字段,用空格分开。 常用配置:0 * * * * 为每个小时执行一次 :0 1 * * * 为没天的凌晨1点执行一次,这种配置的设置