- 博客(66)
- 收藏
- 关注
原创 JavaWeb学习-案例练习-图书管理-13-添加购物车的实现过程
这篇来做一个练习,就是图书详情页面,点击购买按钮,这本书添加到购物中。购物车中主要思想就是采用HashMap来存储数据。1.需求场景浏览器打开http://localhost:8080/BookManagement/pageServlet?currentPage=1显示图书列表,例如点击第一本进入该书的详情页。点击购买,这本书被添加到购物中。2.大致实现思路...
2019-07-31 21:56:22
3453
1
原创 RestAssured接口自动化从入门到框架搭建-11-请求数据的设置(一)
关于请求数据的设置,前面我们零散地学习到了请求头的设置,这一篇,我们主要来看看GET和POST两种请求数据的设置,在Rest Assured中如何使用。1.GET请求数据设置之queryParam()方法前提是GET请求,请求参数都是拼接在Url后面,如果你看到类似这样请求 http://localhost:8080/api?user=tom&pwd=123456那么你就...
2019-07-30 23:11:54
1360
原创 JavaWeb学习-案例练习-图书管理前台-12-给搜索框添加搜索提示功能
这篇来利用Ajax做一个给搜索框添加搜索提示的功能,这个我们在百度首页,搜索框随便输入一个字符,就能弹出联想自动,可供用户选择,这篇要做的就是这么一个场景。1.需求就是这么一个功能。2.文件准备需求中这个index.jsp中的搜索在我们原来项目中没有这个代码,所以这里先把这个素材拷贝进来。(具体素材在我这个项目github上有)本篇主要是index.jsp和...
2019-07-29 22:52:48
1934
1
原创 RestAssured接口自动化从入门到框架搭建-10-RestAssured获取响应头和Cookies
这篇来学习下Rest Assured中如何获取响应头和cookies,前面某一篇,我们介绍过如何拿到 响应内容,再做其他操作这条用例,本篇就是在拿到响应内容基础上,再获取headers 和cookies。1.获取Headers /** * 得到响应头 */ @Test public void testGetResponseHeaders() { Res...
2019-07-26 23:24:58
2207
原创 JavaWeb学习-案例练习-图书管理前台-11-验证邮箱是否存在
前面我们做了一个AJAX练习,就是验证用户名是否存在,现在回到我们的图书管理系统,来写一个如何验证邮箱是否存在的。还是接着之前图书管理后台和前台这个项目,现在是在register.jsp的页面的邮箱验证。1.项目环境准备之前我们是在一个单独的AJAX web项目里做的用户名是否存在的验证,现在我们需要把js中获取创建XMLHttpRequest对象的js代码复制过来。这个图书管理系统...
2019-07-26 22:57:00
571
原创 JavaWeb学习-AJAX-3-练习:验证用户名是否存在
开始来做AJAX的练习,就是判断用户名是否存在,这个场景我们在一些网站的注册页面经常看到,这里说的用户名可以是昵称等。只要用户输入一个名称,输入光标离开到其他输入框,旁边就显示这个用户名是否被注册过,就是这么一个场景。1.场景分析先有一个页面,提供用户名和密码输入的注册页面,例如/reg.jsp 光标离开输入框,这里需要一个事件,onblur就是这个事件。 这个事件需要调用一个函...
2019-07-25 23:15:26
1414
原创 RestAssured接口自动化从入门到框架搭建-9-RestAssured基本功能-6-ContentType校验
这篇介绍Rest Assured中Content-Type的校验,我们常见的响应内容格式,一般有xml,json,html等。这篇主要介绍如何判断一个响应内容的格式是不是JSON, 是不是xml, 是不是html。 本来想再说具体的xml格式中schema语法校验,和JSON中schema的语法校验,没有找到合适的接口。1.校验响应内容格式是html这里拿百度首页举例。 ...
2019-07-24 23:06:06
1530
原创 JavaWeb学习-AJAX-2-XMLHttpRequest对象详解
前面一篇介绍了什么是Ajax和XMLHttpRequest对象的一些常用方法和字段的含义,这篇用代码来巩固下常用方法和基本使用。1.把创建XMLHttpRequest对象代码提出成公共方法在一个web项目中,应该有很多地方需要用到这个XMLHttpRequest对象,所以我们需要把创建这个对象的代码提取出来,放到一个js文件中,然后每个jsp页面如果需要用到这个对象就像引入这个js文...
2019-07-23 23:20:07
514
原创 RestAssured接口自动化从入门到框架搭建-8-RestAssured基本功能-5-摘取内容
继续来学习Rest Assured中常见的功能,上篇介绍了两种方法得到不同类型的响应数据,其实还有一个方法,可以把响应对象装换成字节数组对象。第二个介绍extract().path()方法去摘取某一个字段的值,最后介绍我们实际接口用例开发中的写法是,先获取响应对象,然后根据响应对象提供的方法,去解析拿到响应正文,状态码和响应头字段等。1.响应转换成字节数组虽然我也不知道为什么要转换成...
2019-07-23 20:38:06
1716
原创 JavaWeb学习-AJAX-1- AJAX介绍
进入到一个新的知识点的学习,这个知识点叫做Ajax,指的是异步的javascript和xml,Ajax不是一种编程语言,而是一种用于创建更好更快,交互性更强的web应用程序技术,是基于Javascript xml css html新用法。1.什么是Ajax下面这张图可以解释Ajax是由什么组成Ajax就是上面四个单词缩写,主要是看第一个单词,异步的,Asynchronous,...
2019-07-22 23:38:04
342
原创 RestAssured接口自动化从入门到框架搭建-7-RestAssured基本功能4-root()和post请求和拿到不同响应内容格式
继续来做RestAssured的基本功能练习,先来看看root()这个方法的使用效果。1.root()作用:设置一个body断言开始的base路径,后面boday断言中可以不写完整路径,只写当前路径。例如,加入这里有这么一个请求的响应是这样。{ "RestResponse":{ "message" :"abcddd", "result":{ "name...
2019-07-22 22:20:44
2157
1
原创 JavaWeb学习-案例练习-图书管理前台-10- 图书详情页的实现
前面一篇实现了前端图书列表的分页操作,可以点击上一页和下一页,这个我们实现每个页面显示4本书,实际开发中,一般设置20条记录或者40条记录,这个实现原理是一样的。这篇来学习,在前端页面点击这本书的名称/图片,直接进入这本书的详情页。1.需求场景点击图书图片或者图书名称,可以进入到图书的商品详情页。在案例素材资料中,有一个product_info.jsp就是这个图书详情页的前端效果...
2019-07-21 22:47:00
2222
原创 RestAssured接口自动化从入门到框架搭建-6-RestAssured基本功能3-XML响应内容解析
前面几个测试用例的响应内容都是JSON格式,现在来举例请求的响应内容是XML格式的数据如何解析,其实在Rest Assured中,JSPN和XML数据解析都是一样,通用的写法是xpath表示,具体我们来看两个XML响应的解析例子。1.响应内容是单个XML数据请求demo:http://www.thomas-bayer.com/sqlrest/CUSTOMER/10/什么是xp...
2019-07-21 15:51:40
1482
3
原创 RestAssured接口自动化从入门到框架搭建-5-RestAssured基本功能2-请求参数和请求头
继续来学习RestAssured的基本功能,前面写了三个例子,状态码200判断,打印全部响应到控制台和判断响应中某些字符串。其实这三个都是RestAssured的关于响应的处理。这篇我们继续学习请求的处理,例如请求中如何设置参数,请求头字段如何设置等。1.带参数的请求举例场景1:带一个参数的请求请求demo:https://jsonplaceholder.typicode.com...
2019-07-21 14:16:04
2528
原创 RestAssured接口自动化从入门到框架搭建-4-RestAssured基本功能1-打印响应内容和body解析
前面文章,让我们稍微对RestAssured这个框架有一点点认识和基础。given()这是一个请求对象,get(url)这个是做GET类型请求的发送操作,then()这个是验证相关的对象,前面get()执行完了就能拿到response对象,然后response对象下有一些验证相关的类,then()就是验证类的一个方法。目前就知道这么多,我们这篇开始,一个一个介绍RestAssured...
2019-07-20 23:02:21
3530
11
原创 RestAssured接口自动化从入门到框架搭建-3-RestAssured对象详解
前面环境搭建好了,第一个用例也跑成功了,也简单证明了Rest Assured的优点,那就是代码量少,语法简单,就这个特点就能提高写接口测试用例的速度。还是有一点感觉,我们还是不熟悉Rest Assured这个框架,在介绍Rest Assured基本功能之前呢,我这里带大家一起读一读RestAssured.java这个类的代码,这个类告诉了我们很多信息,有必要看一看。1.怎么找到RestA...
2019-07-19 23:29:03
5301
2
原创 RestAssured接口自动化从入门到框架搭建-2-Maven项目创建和Maven依赖和第一个RestAssured接口测试
这一篇来开始进行一个Eclipse项目的创建,我们选择一个Maven项目工程,然后添加RestAssured这个框架和周边相关的框架的依赖,最后大致介绍以下这些依赖组建的作用。在开始之前,这里介绍一下最新(2019年3月以上)的Eclipse不能从Eclipse市场找到,也不能从install software中下载TestNG的这个问题。1)打开 http://dl.bintray...
2019-07-19 20:30:25
5448
1
原创 RestAssured接口自动化从入门到框架搭建-1-REST和RestAssured简介
这个系列有一个前提基础,就是HTTP协议基础,有了HTTP协议基础,再来学习这个内容。本内容主要是介绍使用Java语言,利用RestAssured这个框架,到达进行接口自动化测试的目标。本篇主要来了解下什么是REST或者RESTFUL,然后了解框架RestAssured是什么,能做些什么。1.REST或者RESTFULREST是一种软件架构风格,其实就是这么一个特点就行。全称是Rep...
2019-07-18 20:33:33
15527
1
原创 HTTP协议基础-9-HTTP session
上一篇解释了cookie, 知道了cookies是客户端技术,cookies是一些临时文件保留用户的数据。下次浏览器访问服务器之前,会先去本地找有没有对应的cookies文件。如果有,就拿cookies数据,自动登录或者保持用户的偏好设置。Http session,session是会话的意思,专门为http无状态的特定而设计的技术,数据是存储在服务器端。这个是和cookies的明显区别。ses...
2019-07-18 20:13:33
1243
2
原创 HTTP协议基础-8-HTTP cookies
这篇来学习cookies,有了cookies基础就更好了解session。HTTP cookie(Web cookie,浏览器cookie)是服务器发送到用户Web浏览器的一小段数据。 浏览器可以存储它并将其与下一个请求一起发送回同一服务器。 通常情况下,它用于判断两个请求是否来自同一个浏览器 - 例如,保持用户登录。 它记住无状态HTTP协议的有状态信息。1.HTTP cookies的...
2019-07-17 20:03:35
3084
原创 HTTP协议基础-7-HTTP响应(实战)
前面演示了HTTP中GET和POST请求的过程,正常顺序是看了一个请求消息部分,立马去看这个请求的响应部分。所以这篇我们接着前面一篇的环境,来看看响应部分。1.POST请求方法的响应部分举例还是上一篇中后台管理的论坛-板块管理-新增板块这个POST请求。1.响应起始行是HTTP/1.1 200 OK, 可以对照前面理论部分看看,这个格式是不是这样,因为在浏览器中F12下看...
2019-07-17 18:31:51
1230
原创 HTTP协议基础-6-HTTP请求(实战)
前面把HTTP 消息和HTTP请求和HTTP响应理论的知识点都学完了,很多概念记不住没关系,我们在实战里面会复习前面学习过的知识点,然后结合实战中的图片来加深对前面知识点的巩固。在实战之前,我们需要搭建一套本地环境,这套环境其实重点是后面cookies和session的学习会用到。还需要安装一个抓包工具,这里就采用fiddler这个免费的工具。1.本地搭建XAMPP+Phpwind环境...
2019-07-17 18:31:31
2078
原创 HTTP协议基础-5-HTTP响应(理论)
继续来学习HTTP协议的理论部分,后面我会搭建环境来实战练习get和post请求,并且讲解每一个字段的含义。为什么要搭建环境呢,因为后面要学习cookie和session。这篇来学习下HTTP响应的理论部分,还是按照HTTP消息的四个部分去展开。1.响应起始行这一行一般看到消息状态码,例如200 ok 这样的字段。有时候前面还有http/1.1这个协议版本。2.状态码上...
2019-07-16 20:50:25
1175
原创 HTTP协议基础-4-HTTP请求(理论)
这篇来学习下HTTP请求,发送一个HTTP请求,其中的消息内容同样遵守上一篇的四个部分,本篇先从请求的角度,展开这四个部分,主要就是三个部分,请求起始行,请求头和字段,请求正文,最后来一个通过浏览器自带的debug工具来看看本篇和前面学习那些概念,看看能不能对得上。通过这种实战,更好了解这些名词的概念和作用。先解释以下前面CRLF这个缩写的含义:回车换行的意思。1.请求起始行Re...
2019-07-16 19:44:18
1256
原创 HTTP协议基础-3-HTTP消息
HTTP基于客户端 - 服务器体系结构模型和无状态请求/响应协议,该协议通过可靠的TCP / IP连接交换消息来运行。本篇就来学习HTTP消息,可以说请求是一个消息,响应也是这个消息。通过学习HTTP消息,接下来学习HTTP请求和响应会更顺利一些。HTTP“客户端”是为了发送一个或多个HTTP请求消息而与服务器建立连接的程序(Web浏览器或任何其他客户端)。 HTTP“服务器”是一个程序(通常...
2019-07-16 18:54:29
1952
原创 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
2308
原创 HTTP协议基础-1-HTTP简介
之前一直不重视HTTP协议,很多概念是半懂不懂的,加上我快学习完了Java web开发中的servlet部分,逐渐对HTTP中的请求和响应以及其他部分有了一点了解。现在开始准备梳理下接口自动化测试,博客里以及完成单元测试框架的梳理(Junit和TestNG), 在做接口测试梳理之前,我还是有必要系统地学习和复习下HTTP协议。其实我们经常说,接口测试很简单,比功能自动化测试还要简单。这种简单是...
2019-07-16 16:53:26
3208
3
原创 Groovy快速入门-12-Groovy如何读文件内容和写入文件
文件读写操作,在编程中经常需要去写的代码,同样在pipeline代码中,一些测试验证的代码也需要去读文件来判断下一步的动作,本篇来介绍如何读文件的groovy代码。然后简单介绍如何写入文件,写入文件比较简单。1.数据准备为了演示读文件,我在groovy项目根目录下,新建一个Data.txt的文件,内容如下。在计算机科学中,闭包(英语:Closure),又稱词法闭包(Lexic...
2019-07-15 19:03:22
13768
原创 Groovy快速入门-11-闭包Closures和范围Ranges
这篇来学习闭包,很多脚本语言中有闭包这个概念,javascript中也有闭包,java是没有这种语法的,groovy中引入了闭包的概念,闭包确实可以让我们少写很多代码。如果不懂闭包,代码就感觉看不懂。1.什么是闭包在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的...
2019-07-15 19:03:13
514
原创 Groovy快速入门-10-Map
前面学习了List集合,这篇来学习Map,也是集合中的一种容器,特点就是键值对形式。这个Map,我在前面介绍方法的时候,写过,参数传入格式就是map.1.Map的创建和获取key的valuepackage com.anthony.demodef employee =[ "name":"Anthony", "age":"18", "city":"BeiJing" ]...
2019-07-15 19:03:05
1023
原创 Groovy快速入门-9-List
这篇来学习一下List集合,List是一种集合容器,里面可以装各种元素,里面还可以嵌套List,里面元素是无序的。1.简单List获取元素方法写一个list,里面放三种水果,来看看如何通过索引的方式获取里面的元素package com.anthony.demodef fruits=["苹果", "香蕉", "葡萄"]println fruits[1]println fruit...
2019-07-15 19:02:35
656
原创 Groovy快速入门-8-方法
这篇来学习方法,这个太重要了,每天写代码都是写在方法里。方法是任何编程语言的核心,就是处理一个特定需求的过程,都可以写到一个或者几个方法中。有些编程语言叫函数,Java这边习惯叫方法。1.什么是方法简单来说方法就是一个代码块,这个代码块有名称,可以有参数,然后提供给别的代码调用,有时候有返回值,谁调用方法,方法就把返回值给谁。1)一个有名称的代码块2)是代码模块化和可复用3)支持...
2019-07-14 13:31:22
1437
原创 Groovy快速入门-7-String
这篇来学习String, 在Groovy中String是一个数据类型,在Java中String是一个对象。这篇很重要,实际开发中,百分之50以上的代码都和字符串处理有关。可以这么说,你字符串操作越熟悉,你实现业务代码就更快,特别是在CI CD pipeline代码中。1.字符串拼接这个代码中使用场景非常多,程序员最喜欢的输出语句就要用到这个。在Groovy中实现字符串拼接有好几个方法...
2019-07-13 23:29:06
1057
原创 Groovy快速入门-6-异常处理
这篇来介绍异常,异常在代码中是一定要接触和要写的代码块。1.try catch这个Java没什么不同,例如举例一个 10/0的运行时异常。package com.anthony.testtry { int i = 10 / 0}catch (Exception e) { println "发现异常:" + e}运行一下发现异常:java.lang.Ari...
2019-07-13 22:35:33
7396
原创 Groovy快速入门-5-switch分支和循环语句
上一篇快速过了一下操作运算符和if else判断语句,分支语句中,还有一个switch没有介绍。1.switch分支来一个成绩划分的例子package com.anthony.demo// switch分支语句def int score = 99switch(score) { case {0 < score && score < 60}...
2019-07-13 15:53:02
968
原创 Groovy快速入门-4-操作符和if条件语句
本篇开学习下Groovy中的操作符和if else分支语句,和其他语言没有什么区别,太简单。1.数学运算操作符无非就是这些加减乘除运算package com.anthony.demo// 操作符,运算assert 1 + 2 == 3assert 4 - 3 == 1assert 3 * 5 == 15assert 8 / 2 == 4assert 9 / 2 == ...
2019-07-12 20:20:52
6265
原创 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
2000
原创 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
1928
原创 Groovy快速入门-1-Groovy简介
补上一个系列,叫Groovy快速入门,如果你学习过Java并且有一定的水平,其实Groovy项目中,你完全可以百分百Java代码实现,这没有毛病,如果你学习的是Python,没有学习过Java,那么这个系列其实对你是没有什么帮助。学习Groovy语言,我们习惯叫脚本语言,能提高Java开发人员的效率。 就我个人而言,学习Groovy语言是做CI CD开发的一个很重要的...
2019-07-11 19:45:05
2463
1
原创 Junit入门到掌握-23-JUnit扩展-模拟Mock
前面一篇简单了介绍了测试桩Stub的概念和举例,和测试桩同级还有一个叫驱动桩,这些都属于TDD技术,也就是测试驱动开发的简称。今天来介绍TDD里面的一个测试技术,叫Mock,就是模拟的意思。现在Mock技术已经在单元测试,集成测试和接口测试,性能测试都能看到。我们这边介绍Java语言中基于Junit的单元测试的mock, 有一个jar包叫JMock。1.Jmock搜先,单词Mock(...
2019-07-11 11:06:15
1681
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人