自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anthony_tester的博客

公众号:AnthonyTestDevHouse,探索从QA角色到开发角色的转换之路(Q群574103281)

  • 博客(1086)
  • 收藏
  • 关注

原创 RestAssured接口自动化从入门到框架搭建-1-REST和RestAssured简介

这个系列有一个前提基础,就是HTTP协议基础,有了HTTP协议基础,再来学习这个内容。本内容主要是介绍使用Java语言,利用RestAssured这个框架,到达进行接口自动化测试的目标。本篇主要来了解下什么是REST或者RESTFUL,然后了解框架RestAssured是什么,能做些什么。 1.REST或者RESTFUL REST是一种软件架构风格,其实就是这么一个特点就行。全称是Rep...

2019-07-18 20:33:33 15871 1

原创 HTTP协议基础-9-HTTP session

上一篇解释了cookie, 知道了cookies是客户端技术,cookies是一些临时文件保留用户的数据。下次浏览器访问服务器之前,会先去本地找有没有对应的cookies文件。如果有,就拿cookies数据,自动登录或者保持用户的偏好设置。 Http session,session是会话的意思,专门为http无状态的特定而设计的技术,数据是存储在服务器端。这个是和cookies的明显区别。ses...

2019-07-18 20:13:33 1444 2

原创 HTTP协议基础-8-HTTP cookies

这篇来学习cookies,有了cookies基础就更好了解session。HTTP cookie(Web cookie,浏览器cookie)是服务器发送到用户Web浏览器的一小段数据。 浏览器可以存储它并将其与下一个请求一起发送回同一服务器。 通常情况下,它用于判断两个请求是否来自同一个浏览器 - 例如,保持用户登录。 它记住无状态HTTP协议的有状态信息。 1.HTTP cookies的...

2019-07-17 20:03:35 3279

原创 HTTP协议基础-7-HTTP响应(实战)

前面演示了HTTP中GET和POST请求的过程,正常顺序是看了一个请求消息部分,立马去看这个请求的响应部分。所以这篇我们接着前面一篇的环境,来看看响应部分。 1.POST请求方法的响应部分举例 还是上一篇中后台管理的论坛-板块管理-新增板块这个POST请求。 1.响应起始行是 HTTP/1.1 200 OK, 可以对照前面理论部分看看,这个格式是不是这样,因为在浏览器中F12下看...

2019-07-17 18:31:51 1326

原创 HTTP协议基础-6-HTTP请求(实战)

前面把HTTP 消息和HTTP请求和HTTP响应理论的知识点都学完了,很多概念记不住没关系,我们在实战里面会复习前面学习过的知识点,然后结合实战中的图片来加深对前面知识点的巩固。在实战之前,我们需要搭建一套本地环境,这套环境其实重点是后面cookies和session的学习会用到。还需要安装一个抓包工具,这里就采用fiddler这个免费的工具。 1.本地搭建XAMPP+Phpwind环境 ...

2019-07-17 18:31:31 2377

原创 HTTP协议基础-5-HTTP响应(理论)

继续来学习HTTP协议的理论部分,后面我会搭建环境来实战练习get和post请求,并且讲解每一个字段的含义。为什么要搭建环境呢,因为后面要学习cookie和session。这篇来学习下HTTP响应的理论部分,还是按照HTTP消息的四个部分去展开。 1.响应起始行 这一行一般看到消息状态码,例如200 ok 这样的字段。有时候前面还有http/1.1这个协议版本。 2.状态码 上...

2019-07-16 20:50:25 1281

原创 HTTP协议基础-4-HTTP请求(理论)

这篇来学习下HTTP请求,发送一个HTTP请求,其中的消息内容同样遵守上一篇的四个部分,本篇先从请求的角度,展开这四个部分,主要就是三个部分,请求起始行,请求头和字段,请求正文,最后来一个通过浏览器自带的debug工具来看看本篇和前面学习那些概念,看看能不能对得上。通过这种实战,更好了解这些名词的概念和作用。 先解释以下前面CRLF这个缩写的含义:回车换行的意思。 1.请求起始行 Re...

2019-07-16 19:44:18 1351

原创 HTTP协议基础-3-HTTP消息

HTTP基于客户端 - 服务器体系结构模型和无状态请求/响应协议,该协议通过可靠的TCP / IP连接交换消息来运行。本篇就来学习HTTP消息,可以说请求是一个消息,响应也是这个消息。通过学习HTTP消息,接下来学习HTTP请求和响应会更顺利一些。 HTTP“客户端”是为了发送一个或多个HTTP请求消息而与服务器建立连接的程序(Web浏览器或任何其他客户端)。 HTTP“服务器”是一个程序(通常...

2019-07-16 18:54:29 2087

原创 HTTP协议基础-2-HTTP参数

前面一篇末尾说到了一些概念,这篇介绍HTTP中的一部分参数,例如URI,日期格式。这些参数在请求或者响应中都会用到,通过学习和了解这些参数的用法,方便接下来HTTP请求和HTTP响应部分的学习。 HTTP版本 前面一篇说了有HTTP/1.0 和HTTP/1.1的区别,这里说的HTTP版本就是HTTP/1.1,过了十几年了也没有出现新的版本,以后我们在请求和响应中看到的HTTP版本都HTT...

2019-07-16 18:53:51 2436

原创 HTTP协议基础-1-HTTP简介

之前一直不重视HTTP协议,很多概念是半懂不懂的,加上我快学习完了Java web开发中的servlet部分,逐渐对HTTP中的请求和响应以及其他部分有了一点了解。现在开始准备梳理下接口自动化测试,博客里以及完成单元测试框架的梳理(Junit和TestNG), 在做接口测试梳理之前,我还是有必要系统地学习和复习下HTTP协议。 其实我们经常说,接口测试很简单,比功能自动化测试还要简单。这种简单是...

2019-07-16 16:53:26 3333 3

原创 Groovy快速入门-12-Groovy如何读文件内容和写入文件

文件读写操作,在编程中经常需要去写的代码,同样在pipeline代码中,一些测试验证的代码也需要去读文件来判断下一步的动作,本篇来介绍如何读文件的groovy代码。然后简单介绍如何写入文件,写入文件比较简单。 1.数据准备 为了演示读文件,我在groovy项目根目录下,新建一个Data.txt的文件,内容如下。 在计算机科学中,闭包(英语:Closure), 又稱词法闭包(Lexic...

2019-07-15 19:03:22 14801

原创 Groovy快速入门-11-闭包Closures和范围Ranges

这篇来学习闭包,很多脚本语言中有闭包这个概念,javascript中也有闭包,java是没有这种语法的,groovy中引入了闭包的概念,闭包确实可以让我们少写很多代码。如果不懂闭包,代码就感觉看不懂。 1.什么是闭包 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的...

2019-07-15 19:03:13 615

原创 Groovy快速入门-10-Map

前面学习了List集合,这篇来学习Map,也是集合中的一种容器,特点就是键值对形式。这个Map,我在前面介绍方法的时候,写过,参数传入格式就是map. 1.Map的创建和获取key的value package com.anthony.demo def employee =[ "name":"Anthony", "age":"18", "city":"BeiJing" ]...

2019-07-15 19:03:05 1303

原创 Groovy快速入门-9-List

这篇来学习一下List集合,List是一种集合容器,里面可以装各种元素,里面还可以嵌套List,里面元素是无序的。 1.简单List获取元素方法 写一个list,里面放三种水果,来看看如何通过索引的方式获取里面的元素 package com.anthony.demo def fruits=["苹果", "香蕉", "葡萄"] println fruits[1] println fruit...

2019-07-15 19:02:35 808

原创 Groovy快速入门-8-方法

这篇来学习方法,这个太重要了,每天写代码都是写在方法里。方法是任何编程语言的核心,就是处理一个特定需求的过程,都可以写到一个或者几个方法中。有些编程语言叫函数,Java这边习惯叫方法。 1.什么是方法 简单来说方法就是一个代码块,这个代码块有名称,可以有参数,然后提供给别的代码调用,有时候有返回值,谁调用方法,方法就把返回值给谁。 1)一个有名称的代码块 2)是代码模块化和可复用 3)支持...

2019-07-14 13:31:22 1546

原创 Groovy快速入门-7-String

这篇来学习String, 在Groovy中String是一个数据类型,在Java中String是一个对象。这篇很重要,实际开发中,百分之50以上的代码都和字符串处理有关。可以这么说,你字符串操作越熟悉,你实现业务代码就更快,特别是在CI CD pipeline代码中。 1.字符串拼接 这个代码中使用场景非常多,程序员最喜欢的输出语句就要用到这个。在Groovy中实现字符串拼接有好几个方法...

2019-07-13 23:29:06 1213

原创 Groovy快速入门-6-异常处理

这篇来介绍异常,异常在代码中是一定要接触和要写的代码块。 1.try catch 这个Java没什么不同,例如举例一个 10/0的运行时异常。 package com.anthony.test try { int i = 10 / 0 }catch (Exception e) { println "发现异常:" + e } 运行一下 发现异常:java.lang.Ari...

2019-07-13 22:35:33 7781

原创 Groovy快速入门-5-switch分支和循环语句

上一篇快速过了一下操作运算符和if else判断语句,分支语句中,还有一个switch没有介绍。 1.switch分支 来一个成绩划分的例子 package com.anthony.demo // switch分支语句 def int score = 99 switch(score) { case {0 < score && score < 60}...

2019-07-13 15:53:02 1128

原创 Groovy快速入门-4-操作符和if条件语句

本篇开学习下Groovy中的操作符和if else分支语句,和其他语言没有什么区别,太简单。 1.数学运算操作符 无非就是这些加减乘除运算 package com.anthony.demo // 操作符,运算 assert 1 + 2 == 3 assert 4 - 3 == 1 assert 3 * 5 == 15 assert 8 / 2 == 4 assert 9 / 2 == ...

2019-07-12 20:20:52 7156

原创 Groovy快速入门-3-Groovy的注释,变量和数据类型

本篇来介绍Groovy的注释和变量和数据类型,都是很简单的内容,一看就会的,如果有Java基础。 1. 注释 这里介绍下Groovy的语法特点,自由,注释和Java一模一样,有当行和多行和文档注释 package com.anthony.demo // 单行注释 println 'Hello Groovy!' package com.anthony.demo /* * 多行注释...

2019-07-12 20:20:44 2272

原创 Groovy快速入门-2-如何在Eclipse上安装Groovy支持和创建Groovy工程

前面一篇我们在widnows安装好了Groovy环境,也在GroovyConsole写了一个Hello Grovvy的代码。如果以后开发都在GroovyConsole进行,那么简直效率太低。好在各大流行IDE软件都支持Groovy集成,由于我习惯Eclipse多一些,所以我这篇介绍如何在Eclipse环境上安装groovy支持和创建一个标准的Groovy工程,然后继续敲我们的Hello Groov...

2019-07-11 23:38:21 2250

原创 Groovy快速入门-1-Groovy简介

补上一个系列,叫Groovy快速入门,如果你学习过Java并且有一定的水平,其实Groovy项目中,你完全可以百分百Java代码实现,这没有毛病,如果你学习的是Python,没有学习过Java,那么这个系列其实对你是没有什么帮助。学习Groovy语言,我们习惯叫脚本语言,能提高Java开发人员的效率。 就我个人而言,学习Groovy语言是做CI CD开发的一个很重要的...

2019-07-11 19:45:05 2772 1

原创 Junit入门到掌握-23-JUnit扩展-模拟Mock

前面一篇简单了介绍了测试桩Stub的概念和举例,和测试桩同级还有一个叫驱动桩,这些都属于TDD技术,也就是测试驱动开发的简称。今天来介绍TDD里面的一个测试技术,叫Mock,就是模拟的意思。现在Mock技术已经在单元测试,集成测试和接口测试,性能测试都能看到。我们这边介绍Java语言中基于Junit的单元测试的mock, 有一个jar包叫JMock。 1.Jmock 搜先,单词Mock(...

2019-07-11 11:06:15 1845 2

原创 Junit入门到掌握-22-JUnit扩展-测试桩Stub

这篇来学习单元测试中的Stub,翻译过来就是测试桩。测试过程中为什么要打桩,什么是桩,如何写一个简单的测试桩的例子,本篇就来了解这些基本的问题。 1.什么是测试桩 不要去看网上看哪些所谓的定义,在了解桩之前,我们需要了解依赖。 上面这个图,SUT表示被测试的软件,TestCode是我们写的一个测试用例,其中我们需要测试里面一个模块,但是这个模块依赖别的模块,依赖的模块加入是被部门甚至别公...

2019-07-10 18:54:57 2473 1

原创 Junit入门到掌握-21-JUnit扩展-持续集成之Infinitest

这篇开始介绍一些Junit扩展的东西,本篇先引出持续集成的概念,然后介绍一个小工具,里面实现持续集成效果。这个工具叫Infinitest。 1.什么是持续测试 持续测试就是修改代码和执行测试形成闭环自动化。 2.Infinitest安装 一般在Eclipse都是去市场里搜这个名称,然后安装,重启Eclipse就行 项目介绍:https://infinitest.github.i...

2019-07-10 18:54:48 719

原创 Junit入门到掌握-20-JUnit集成-代码覆盖率Cobetura基本使用

前面一篇文章介绍了代码覆盖率一些概念和代码覆盖率测试中一些准则或者覆盖率方式,这篇继续来学习代码覆盖率一个软件,或者一个插件。这个插件叫Cobetura, 可以直接在cmd通过命令运行,不过一般我们用maven集成,下面来看看这个maven+Cobetura集成过程。 1.项目准备 这个需要Eclipse新创建一个标准的maven项目,不然得到html报告,覆盖率全部选项都是0. 之前我们是...

2019-07-10 18:54:39 1150

原创 JavaWeb学习-案例练习-图书管理前台-9-分页功能实现

前面一篇完成了多条件的查询,这篇开始学习分页,很多网页是默认显示20条数据,想看更多数据,就通过点击下一页的方式实现。这篇就来模拟这个分页实现过程。 1.项目环境准备 之前我们实现的都是图书管理后台功能,现在分页,我们在前端页面,所以我把素材中product_list.jsp和ad文件夹拷贝到Eclipse中的WebContent的目录下。product_list.jsp就是我们要实现分...

2019-07-09 22:42:46 1021

原创 Junit入门到掌握-19-JUnit集成-代码覆盖率

这篇来学习一个单元测试领域中很重要的一个概念,代码覆盖率,这个术语,早起是在航空航天方面的软件里提出来的一个测试方法,100%代码覆盖率是一个不可能完成的任务,只是一个理想的目标。本篇先来学习代码覆盖率和周边几个名词,然后介绍一款能够给出代码覆盖率的插件,简单来学习和使用下这个插件。代码覆盖率是一个很容易在面试中被问到的问题,通过本篇学习,你起码有一个普,不会乱扯,不懂装懂。 1.代码覆盖...

2019-07-08 21:51:35 6406 2

原创 Junit入门到掌握-18-JUnit集成-Maven和Junit的集成

我前面说过,现在Java语言项目中流行的构建工具主要是ant和maven, 现在来看,maven更火和采用率更多,所以我不介绍ant和junit的集成,这篇来学习maven和junit的集成过程。 1.先把被测项目和junit测项目都转成maven项目 目前我们有这两个Java 工程,现在需要把这两个java工程都转换成maven工程。 右键ProteinTracker这个工程,选...

2019-07-08 19:17:14 2067 2

原创 Junit入门到掌握-17-JUnit集成-命令行运行junit用例

这篇来学习命令行如何执行Junit测试用例,其实就是一个很长的命令,我们需要分步骤地去拼接这个命令,最后这些步骤其实都是可以通过自动化完成。 1.下载Junit jar包 去https://github.com/junit-team/junit4/wiki/Download-and-Install 下载两个包 其实这两个jar在我们eclipse上项目中都有 把这两个放在一个文件...

2019-07-08 19:15:15 2610

原创 Junit入门到掌握-15-JUnit高级-Theories

这篇学习注解@Theory和@DataPoint, 这个和Parameters一样,属于数据驱动范畴。 1.Theory @DataPoint标注的也是一个静态方法,里面有数据源。如果是@DataPoint表示一个数据,如果是@DataPoints表示一组数据,一般用@DataPoints 2.demo练习 新创建一个测试类,代码如下 package test; im...

2019-07-08 19:14:10 861

原创 Junit入门到掌握-16-JUnit集成-在Java main方法中执行JUnit测试类

前面JUnit基础和JUnit的高级都介绍完了,该考虑和其他工具集成,例如ant和maven,由于最近几年java项目都使用maven和gradle,几乎看不到ant构建工具,所以这个集成,我这里主要介绍JUnit和Maven的集成。其实,如果做过集成自动化自动化测试就应该知道,想要集成,第一个要实现的就是简化成一条命令在控制台或者命令终端执行,如果可以做到,集成就没有任何问题,所以,我们这里先来...

2019-07-08 19:13:57 2327 2

原创 Junit入门到掌握-14-JUnit高级-规则Rule

前面一篇介绍期待异常处理,说了一下新的注解@Rule, 这篇来学习一下Rule 1.Rule JUnit有了Rule,才使得有更多的扩展性,能做更多的功能测试。@Rule的特点是:在一个class中所有的@Test标注过的测试方法都会共享这个Rule,例如定义一个Timeout,所有方法运行都会自动检测是否超时。 官方wiki关于rules介绍:https://github.com/j...

2019-07-07 22:50:04 1245

原创 Junit入门到掌握-13-JUnit高级-高级异常

这篇来学习一个高级异常,主要是在单元测试中需要测试某些方法的期待异常出现。 1.高级异常 高级异常一般是结合@Rule使用,然后初始化一个ExceptedException对象, Rule注解这篇之后来具体介绍。 2.高级异常举例 1.在被测项目代码中,扎到InvalidGoalException.java 改成如下代码。 package com.anthony.prote...

2019-07-07 22:08:33 578

原创 Junit入门到掌握-12-JUnit高级-高级断言

这篇来学习下Junit中的高级断言,前面我们学习过assertEuqals(期待结果,实际结果)这样的表达式去断言。那么什么是高级断言呢,其实就是这种基本断言的一种扩展,一般格式是这样的assertThat(实际结果,匹配规则),高级断言高级就在匹配规则这块的表达式书写,很灵活。 1.高级断言 高级断言的格式 这个value就是我们的实际结果,这个方法的名称是assertThat,...

2019-07-07 19:00:53 869

原创 Junit入门到掌握-11-JUnit高级-Parameterized参数化

这篇来学习一个新的注解,叫@Parameters, 参数化的意思。什么时候需要用到参数化呢,在selenium中这个例子很好,就是我有一个500个用户数据,我需要重复测试这500个用户的登录功能。我们肯定只需要写一个方法,然后调用这个方法500次,每次方法传入参数不一样,这样应该能够完成这个测试需求。在单元测试中,如果一个方法的用例,采用边界值划分,有时候会产生十几个测试用例,这个时候我们就需要使...

2019-07-07 18:15:23 2717

原创 Junit入门到掌握-10-JUnit高级-Categories

前面介绍了测试套件TestSuite的概念和基本功能是把需要测试的测试类加进来管理,像一个容器一样。这样管理方式有些简单粗暴,为了达到更精细和灵活管理,我们这篇来学习一个Categories的概念,字面意思就分类。 1.Categories 这个分类和测试套件很像。 第一个特点,在TestSuite原来的注解变了,第二个我们需要在原来的TestClass里面是有Catogories...

2019-07-05 23:31:25 1847

原创 Junit入门到掌握-9-JUnit高级-TestSuite和举例

前面几篇介绍完了JUnit的基本功能和基本使用场景以及用法,一般来说,现在的开发都是一个人一个模块,如果一个开发,写一个业务代码的类,然后利用前面的知识是可以完成最基础的单元测试,起码证明他写的方法是可以通过单元测试,至少开发会做正向成功的用例。这篇开始来学习JUnit作为一个单元测试框架的高级部分,我们先从TestSuite开始。 1.测试套件 TestSuite 不要笑,我们先来学习...

2019-07-05 22:35:07 3831 2

原创 Junit入门到掌握-8-JUnit基础-Exception和Timeout和Assertions

本篇来学习两个参数项,异常和超时。这两个参数是结合@Test来使用的,作用范围当然是测试方法。 1.异常Exception 有时候我们执行这个方法,出现异常是期待的结果,单元测试中如果出现异常,会中断测试,为了不中断,我们需要使用异常注解 模拟异常测试 为了模拟异常,我们需要到被测项目中,某一个方法写一个抛异常的代码,然后这个自定义异常类需要我们写以下。 编辑被测项目的T...

2019-07-05 17:27:53 1221

原创 Junit入门到掌握-7-JUnit基础-注解BeforeClass和AfterClass和Ignore

前面一篇学习了Before和After这两个注解,这两个注解是作用在每一个@Test标注的方法上,每次运行方法都需要运行一次Before和一次After。这篇来学习一个类似的,就是作用范围变成了Class,叫BeforeClass和AfterClass, 特点就是,每运行一次class文件,只执行一次BeforeClass和AfterClass, 这两个注解标注标注的方法是Java中的静态方法。 ...

2019-07-05 17:27:42 2105

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除