自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TesterAllen的博客

笔记整理-资源分享-求教请教

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

原创 精准化测试原理简介与实践探索

1、玩个游戏先小时候大家应该都玩过一个游戏,游戏很简单,就是找不同,在规定时间内两幅图直接的差异点找到就算赢,越快越好,就像下面这样:上面这个不同点想找很简单,那么下面这样的呢?这个,确实有的人会说"我可以!"比如在综艺节目"最强大脑"中,这群"变态"的非人类确实可以反正我不行,我也不信你们看到文章这里的人可以~我只有最菜大脑2、渴望最强大脑上面的色块就好比我们要测试的程序,一面墙相当master分支的代码,一面墙相当于dev分支的代码,而dev改了哪些?差异在哪里?影响到的范围是多

2021-07-15 16:46:17 2103

原创 Dubbo接口测试原理及多种方法

一、什么是Dubbo最开始是应用于淘宝网,由阿里巴巴开源的一款优秀的高性能服务框架,由Java开发,后来贡献给了Apache组织下面以官网的一个说明来了解一下架构的演变过程,从而了解dubbo的诞生原因:单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,提升效率的方法之一是将应用拆成互不相干的几个应用,以提升效率。此时,

2021-03-15 00:27:40 3158 8

原创 接口自动化测试的分层的浅显理解

本文以当前使用的自动化项目为例,浅谈分层设计的思路,不涉及到具体的代码细节和某个框架的实现原理,重点关注在分层前后的使用对比,可能会以一些伪代码为例来说明举例接口测试三要素参数构造发起请求,获取响应校验结果一、原始状态在我们用例没有进行分层的时候,只能算是一个“苗条式”的脚本,以一个后台创建商品活动的场景为例,大概流程是这样的(默认已经是登录状态下):创建商品-创建分类-创建优惠券-创建活动要进行接口测试的话,按照接口测试的三要素来进行,具体的效果如下:# 1、参数构造cr.

2021-02-22 14:32:27 3520 2

原创 Rest-assured获取日志到文件并结合Allure报告进行展示

本文仅作为我当前需求解决的一个经历记录,本人能力有限,菜鸟级别;若有幸被阅读到且提供了有效帮助,我深感荣幸;若对您无用或大佬有更好的方法,还望轻喷赐教,我将虚心请教拜读,谢谢~1、需求与方向1.1 问题产生在使用Rest-assured集合Allure运行完用例之后,查看生成的报告信息如下:我们可以看到在生成的报告中只有断言信息,而没有请求的日志信息,而当我们的用例失败时,特别是接口...

2020-04-14 11:04:17 1946

原创 04-接口自动化之请求传参的模板化技术(JsonPath与Mustache)

1、需求背景在实际的接口测试时,传参有时候可能需要很多,也可能我们就是想要一份完整的参数,必填项和非必填项都包含在内,好比如下的json:{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings o...

2020-01-14 16:23:04 865

原创 参数化和数据驱动在App自动化测试中的应用(基于Junit5和YAML)-01

1、何为数据驱动什么是参数化?什么又是数据驱动?经常有人会搞不明白他们的关系,浅谈一下个人的理解,先来看两个测试中最常见的场景:登录:不同的用户名,不同的密码,不同的组合都需要做登录场景的测试,正常的排列组合下可能会产生多个用例搜索:不同的搜索条件产生不同的搜索结果,搜索也是常见的测试项,单个搜索参数或者多种搜索参数的组合;同样也会产生多个用例。以上两种场景都有一个共同点,就是测...

2019-11-28 17:03:51 1309 4

原创 解决App自动化的不稳定因素-弹框及首页启动加载完成判断处理

1、“罪恶”源泉经常我们会觉得App自动化不靠谱,不稳定,其中很大的两个原因是:App启动加载时间较久(可能App本身加载慢,可能移动设备本身加载应用速度慢,也可能首页广告时间较长)。各种弹框的出现;广告弹框,升级弹框,评价弹框等。例如如下雪球App出现的几种弹框:在框架中若不对上述情况做处理就可能出现元素定位超时找不到的报错,自动化也就被打断终止了,使我们刚燃起的自动化热...

2019-11-18 16:02:55 2727

原创 以QQ邮箱登录为例,浅谈PageObject(PO)设计模式在UI自动化中的应用

1、认识PO1.1 PO首次提出PO的思想最早是2103年由IT大佬Martin Flower提出的:https://martinfowler.com/bliki/PageObject.html没错,就是他在他的文章里有这样一张经典样图,图片中展示了测试代码中直接操作HTML元素和使用PO模式将page对象封装成一个HTML页面,通过特定方法来操作元素的对比;如下图:1.2 PO原...

2019-11-05 10:48:48 903

原创 基于Jmeter完成Dubbo接口的测试

Jmeter默认是不支持dubbo接口测试的,但是我们可以通过拓展的插件或jar包就可以实现此功能1、插件下载测试dubbo,我们需要下载dubbo的插件在Apache的dubbo插件GitHub中可以找到https://github.com/thubbo/jmeter-plugins-for-apache-dubbo点击进入,这里我们选择当前的最新版本2.7.8进行下载2、插件安装插件下载好后只需要将jar包放入到jmeter的lib下的ext文件夹即可我的Jmeter是使用Mac.

2021-01-05 16:02:21 1292 1

原创 基于Charles,如何利用代理技术进行接口mock测试(二)-结合jq完成批量化的手工mock

前情介绍:因为本章的内容是适用jq工具配合完成,因此在前面开始会先花一定的篇幅介绍jq机器适用,如果已经对jq熟悉的可以直接跳过这部分1、jq简介1.1 jq的概述与用途按惯例,先看官网对jq的解释:官网传送门:jq官网大概意思就是轻量灵活的Json处理命令行,用途说到这大概有些人有点感觉它能用来做什么了,为啥手工mock要使用jq了,没错!要用它来处理接口返回的json数据以达到mock的效果1.2 jq的下载安装Mac:Mac还是一如既往的简单(香~),装了Homebrew.

2020-07-10 14:17:36 473

原创 【测开基础之计算机网络】六: 应用层

1、应用层1.1 协议分层1.2 域名系统 DNS1.2.1 什么是域名为了了解域名系统 DNS的作用,首先要知道什么是域名在全球的互联网中,每个网站都有自己的地址,如果我们访问网站都要直接去记ip地址和端口的话将非常的不方便,因此我们使用网站的名称来访问;这就要求Internet上的服务名称全球唯一,那么又如何保证全球唯一?这就需要在使用前向互联网组织申请域名,如果已经被占用将无法注册使用。域名的组成根顶级域名国家顶级域名 nTLD:如: .cn 表示中国,.us 表示美

2020-06-22 16:57:25 330

原创 【测开基础之计算机网络】五: 传输层

1、传输层1.1 传输层的作用1.2 传输层协议应用场景TCP/IP 的运输层有两个不同的协议:(1) 用户数据报协议 UDP (User Datagram Protocol)(2) 传输控制协议 TCP (Transmission Control Protocol)两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。TCP 传送的数据单位协议是 TCP 报文段(seg

2020-06-21 20:39:22 581

原创 【测开基础之计算机网络】四: 网络层

1、网络层1.1 网络层提供的两种服务网络层关注的是如何将分组从源端沿着网络路径送达目的端在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?两种服务,网络层应该向运输层提供怎样的服务?虚电路服务数据报服务...

2020-06-20 22:18:30 416

原创 Java读取resources资源文件-class.getResource、ClassLoader.getResource和getResourceAsStream的区别

在日常自动化测试开发中,经常要使用配置文件,或进行环境配置,或进行数据驱动等;我们常常把这些文件放置在resources目录下,然后通过getResource、ClassLoader.getResource和getResourceAsStream()等方法去读取,经常看到有人在读取配置文件时踩坑,本人也是踩坑过来了,这里做梳理分享1、何为classpath读取资源文件最关键的就是找到文件的位置,归根结底就是找路径,而怎么找,在哪找就是个问题;这其中和classpath有很大的关系,因此先了解下cl.

2020-06-17 14:02:46 4941 1

原创 【测试原理与设计】理解常见异常值测试-null、空值

日常测试工作中,除了正常值的测试,我们还需要对参数的异常值进行测试,这其中要问起来,很多人都可以脱口而出需要测试null、空值等等。但是要问为什么要测?具体怎么测?测试的结果说明了什么问题?可能就不尽然能说的清楚了,我自己也是遇到过这种情况,反问自己这三个问题,说的出来一些,又好像不是那么确定,心里还是有点虚~1、Bug现象日常测试或生活中可能会出现如下现象:登录用户,用户名处显示“你好,尊敬的用户null”。查看商品信息,显示商品信息为,商品名:null,价格:null。发送短信,短信信息.

2020-06-01 16:25:42 3289 1

原创 【测开基础之mvn test】一、利用maven-surefire-plugin完成对测试用例的基础执行管理及踩坑

1、需求1、执行自动化测试用例的时候,只想指定某个测试类,或者某个方法,又或者某一类用例等,怎么办?2、想要和Jenkins一起进行持续集成,可是用例又不可能在IDE里面执行,怎么办?这个时候就需要maven登场了,利用maven的maven-surefire-plugin插件可以帮助我们完成上述的目标!它可以通过命令行的形式来管理我们要执行的用例。2、环境2.1 环境要求Maven 3.x +JDK 1.7 +2.2 支持框架对于我们测试来说,常接触的几个用例管理框架都支持(这里

2020-05-28 11:28:57 2526

原创 【测开基础之计算机网络】三: 数据链路层

1、数据链路层1.1 基本概念1.1.1 数据链路层的简单模型在这一章中,只关心数据链路层上帧的流动,不关心物理层的媒介和技术方式;若从主机H1向主机H2发送数据,所经历的模型方式如下图只关心数据链路层的话,如下图所示:1.1.2 数据链路层的信道类型点到点信道:这种信道使用一对一的点到点通信方式;例:好比我们拿两台电脑,用一根网线直接将两台电脑相连接,这就属于点到点。广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共

2020-05-21 23:59:36 766

原创 【测开基础之计算机网络】二: 物理层

1、物理层由于物理层在互联网软件的日常工作中关注的并不多,所以这章就做简单的了解1.1 物理层的基本概念物理层解决如何在连接计算机的各种传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的主要任务描述为:确定与传输媒体的接口的一些特性,即:机械特性:例如接口形状、大小、引线数目电气特性:例如规定的电压范围(-5V-+5V)功能特性:例如规定-5V表示0,+5V表示1过程特性:也称规程特性,规定建立连接时各个相关部件的工作步骤1.2 数据通信的基础知识典型的数据通信

2020-05-21 11:28:11 277

原创 【测开基础之计算机网络】一: 计算机网络概述

1、计算机网络概述1.1 因特网概述网络、互联网、因特网;经常听到的三个名词,他们的区别是什么?先参考如下图网络(Network)计算机通过交换机设备组建成一个局域网,一般不超过100米,例如学校的机房;互联网(Network of Network)还是以学校机房为例,不同教室之间的网络可以通过路由器相互连接,这就叫做互联网;并且通过广域网可以连接的很远。因特网(Internet)全球最大的一个互联网总结网络:许多计算机连接在一起互联网:internet 许多网络连接在一

2020-05-19 23:56:47 1277

原创 04-Jenkins之基于接口自动化测试完成Jenkins+GitHub+Allure的结合

1、前提关于使用Jenkins创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以自行百度Google或参考文章:01-Jenkins之job创建、参数化与定时构建以及时区偏差填坑另外还需要的就是执行机的环境(以GitHub拉取项目为例),需要需要配置Java运行环境(我用的是jdk1.8)需要有maven环境需要有git环境需要将g...

2020-04-15 11:15:12 526

原创 03-Jenkins之Email配置与任务邮件发送实践与踩坑

1、插件下载在配置Email之前我们需要下载两个插件:Email Extension, Email Extension Template,这两个插件可以帮助我们进行邮件的编写发送以及格式化在系统管理->插件管理中下载插件:2、配置Email(Jenkins自带)2.1 基础信息查询找到所要配置邮箱的基础信息,这里以QQ邮箱为例通过网页端QQ邮箱的设置进入到邮箱客户...

2020-04-09 22:48:01 1349 2

原创 01-Jenkins之job创建、参数化与定时构建以及时区偏差填坑

1、创建job1)启动Jenkins后在首页点击"开始创建一个新任务"。2)输入任务名称,选择自由风格,点击确定2、构建保持配置1) 任意输入描述,然后勾选"丢弃旧的构建",在"保持构建的最大个数中"输入3由于Jenkins构建产生的日志等信息会保存在本机磁盘中,这样无限构建任务的话就会占用很多磁盘空间,因此可以在这里对旧的构建进行配置丢弃,可以选择以天数为条件,也可以选择保持的个...

2020-04-07 14:15:05 2678

原创 基于电商模式的性能测试(六)-基于Jmeter"Ultimate Thread Group"插件完成梯度递增场景的压测

从Thread Group中看,我们的Thread会在某个时间点同时起多个,而日常场景中我们需要的可能是一个递增的梯度加压的方式为了实现梯度递增,我们就需要借助于插件Ultimate Thread Group在实际的测试中,可能还需要设置触发点,假如请求的响应时间过长,错误率过大,已经没有测试的必要了后自动停止测试,这个时候就可以借助另外一个插件——AutoStop Listener

2020-03-12 11:41:06 1027

原创 基于电商模式的性能测试(五)-基于Jmeter完成一次日常典型电商场景的压测(下单-支付)

本文是接着前一篇的基础上,继首页浏览业务完成后,开始下单-支付场景的学习实践,具体可参考文章:基于电商模式的性能测试(四)-基于Jmeter完成一次日常典型电商场景的压测(首页浏览)1、分布拆解1.1 POST /cart/add1.1.1 接口分析在电商购物场景中,最为常见和典型的就是添加购物车了,按照之前选定的接口,来看看添加购物车接口POST /cart/add的情况从接口...

2020-03-12 11:32:23 3113 4

原创 基于电商模式的性能测试(四)-基于Jmeter完成一次日常典型电商场景的压测(首页浏览)

1、前期准备1.1 场景预设之前的测试中单独抽离出了一个注册登录的场景,而实际的电商场景中,绝大多数都是已经登录并保持登录状态的,用户的登录信息可能被保存在浏览器的cookie中或在App的localstorage中,更多的是拿到现有的cookie去做验证;因此这里在默认用户登录状态下抽离出一个典型的电商场景,浏览首页-添加商品-下单结算,涉及到的接口如下:1)浏览首页2)增加浏...

2020-03-10 10:21:59 2071 1

原创 基于电商模式的性能测试(三)-以Docker+Jmeter+InfluxDB+Grafana的形式搭建性能监控平台

1、需求1.1 需求背景在用Jmeter获取性能测试结果的时候,Jmeter本身带有聚合报告如下这个报告有几个很明显的缺点:只能自己看,无法实时共享;报告信息的展示比较简陋单一,不直观;1.2 需求方案为了解决上述问题就请出了InfluxDB+Grafana:InfluxDB:持续型数据库,有时间戳组件,以时间的形式去存储数据Grafana:一款采用 go 语言编写的开源...

2020-03-08 15:18:52 926

转载 每日一问系列——Java系列

参考链接:https://zhuanlan.zhihu.com/p/943128302020.3.4-Java 中的容器有哪些?它们的区别和特性?1、Java 中的容器有哪些?Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示:Collection:ListArrayListLinkedListVectorStackSetHa...

2020-03-04 09:46:54 304

原创 基于电商模式的性能测试(二)—使用Jmeter参数化功能+JSR223 PreProcessor+JSON Extractor完成注册登录的数据驱动

1、前置条件此例使用的是GitHub上一个开源的电商项目mall,需要的可以去GitHub上下载部署,有详细的部署教程:GitHub地址:https://github.com/macrozheng/mall部署教程:https://macrozheng.github.io/mall-learning/#/README2、场景抽离首先要对需要测试的场景进行抽离,明确场景的接口、参数和...

2020-03-02 19:55:16 1237 1

原创 基于电商模式的性能测试(一)—基础知识铺垫

1、总览1.1 测试步骤总览需求分析与测试设计(性能需求目标+业务模型拆解)测试数据准备和构造(基于模型的数据准备)性能指标预期(性能需求目标)发压工具配置及脚本编写(压力策略)测试过程(预计的前置准备过程和压测时间点规划)结果分析与测试报告1.2 测试模型分析如下的测试模型来简单的说明测试中需要关注的点和测试的目的字段说明:1、横轴代表并发数,也就对应着Jmet...

2020-03-02 15:08:43 1714

原创 dubbo-admin+zookeeper的环境搭建实操与Could not extract archive报错踩坑

1、安装1.1 zookeeper安装zookeeper的安装相对简单,这里以Mac系统为例,直接使用brew命令即可:$ brew install zookeeper==> Downloading https://homebrew.bintray.com/bottles/zookeeper-3.4.13.mojave.bottle.tar.gz...1.2 dubbo-adm...

2020-01-16 12:52:28 4067 4

原创 03-接口自动化框架REST Assured对Response结果的导出获取

1、前情回顾上一篇文章中介绍了rest-assured对返回结果的断言,最后说明了对于Response结果导出的需求,具体可参考文章:02-接口自动化框架REST Assured的断言实现这里就将继续研究rest-assured对response结果的导出获取,现有一个登录接口auth/oauth/token,接口的部分返回值如下:HTTP/1.1 200 OKServer: nginx...

2020-01-13 13:52:09 1203

原创 02-接口自动化框架REST Assured的断言实现

1、Json断言1.1 环境准备这里以rest-assured官方给的一个示例做演示学习{"lotto":{ "lottoId":5, "winning-numbers":[2,45,34,23,7,5,3], "winners":[{ "winnerId":23, "numbers":[2,45,34,23,3,5] },{ "winnerId":54, ...

2020-01-12 21:49:35 1428

原创 01-初识REST Assured-为Java量身定做的接口自动化框架

1、初识REST Assured1.1 描述在REST Assured的官方GitHub上有这样一句简短的描述:Java DSL for easy testing of REST services简约的REST服务测试Java DSL1.2 优点官方的README第一句话对REST Assured进行了一个优点的概述,总的意思表达的就是简单好用用Java做接口自动化测试首选REST...

2020-01-10 15:43:35 1175

原创 基于Charles,如何利用代理技术进行接口mock测试(一)

1、工具选择作为一名测试工程师,抓包是最常用的分析问题的手段,而Charles又是最常用的代理工具,之所以使用它有一下几个原因:代理功能http/https、socks5限速模拟断点调试转发映射:让发往a网站的请求返回b网站的内容重写:自动把请求和内容篡改掉工具:拼装请求、重放请求、重读请求上面提到了对Charles代理工具的种种分析,学海无涯,每个知识点...

2020-01-08 11:12:06 1496

原创 iOS自动化测试(二)-基于appium的架构原理、环境命令、定位方式

1、原理与变迁1.1 环境版本变迁先来看下面的版本对应表由上表可以得知:iOS 8.0到9.3 之间的时候一直以 instruments 下的 UIAutomation为驱动底层技术查阅资料说弊端是由于 instruments 的限制,单台 mac 只能对应单台设备,由于现在9.3之前的版本很少了,所以我在学习的时候也就忽略了这部分的内容,仅作为了解);iOS 9.3 之...

2019-12-19 11:08:34 1291

原创 iOS自动化测试(一)-技术方案、环境配置与疯狂踩坑

移动端的自动化测试,最常见的就是Android自动化测试,IOS相较于Android要安全稳定的多,但是IOS也是一个需要测试的方向,作为测试,不认真测一下心里还是过意不去,只是我个人觉得Android的测试优先级会更高,当然Android也更开放,更容易测试;今天这里来一起学习记录下iOS自动化测试要如何来做1、环境准备硬件环境:Macbook Pro(做iOS测试,Mac是绕不开...

2019-12-17 16:09:01 5114 3

原创 以AppCrawler的配置文件完成定制化的自动遍历测试(实操)-02

1、前情回顾在此之前,分别通过两篇文章介绍了自动遍历的测试需求、工具选择和AppCrawler的环境安装、启动及配置文件字段基本含义,具体可参考博客:初探自动遍历测试工具-AppCrawler以AppCrawler的配置文件完成定制化的自动遍历测试(基础)-01这里将以实际案例更加细致的说明配置文件的用法和一些特殊场景的处理2、实操演示2.1 常规使用下面我们继续之前的例子,在雪球搜...

2019-12-04 17:16:32 4000 9

原创 App自动化之dom结构和元素定位方式(包含滑动列表定位)

1、认识DOM结构先来看几个名词和解释:dom: Document Object Model 文档对象模型dom应用: 最早应用于html和js 的交互。界面的结构化描述, 常见的格式为html、xml。核心元素为节点和属性xpath: xml路径语言,用于xml 中的节点定位如下我们先来看一个App的dom:控件的基础知识和selenium一样,appium为移动端抽象出了一个...

2019-11-12 11:25:04 1494

原创 从解读Appium官网的第一段话开始敲开移动互联网自动化的大门

1、移动互联网背景随着智能手机的普及和互联网的发展,移动互联网已经渐渐成为人们的一种的生活方式;既然是生活方式,那么对生活品质就会有不断的提升要求,就会对所用的移动互联网产品有更高的体验需求,这对于我们测试工程师来说就有了更高的质量保证要求,而时间短,进度快,种类多,使得我们仅靠人工很难保证版本的测试充分,这个时候就需要借助自动化来释放人力,提升效率了。1.1 一般架构移动端:用户会通...

2019-11-11 17:36:54 370

原创 推开Web自动化的大门到达“犯罪现象”-侦破selenium架构、环境安装及常用元素定位方法

有关Selenium的介绍在网上实在是太多了,总结起来就是一个目前在web自动化方面运用最为广泛的一个开源自动化测试框架Selenium架构client:每个语言都有自己的库,提供不同的API供用户去调用完成相关的自动化测试行为;这里调用有关web自动化的API到selenium的serverselenium:用于将接收到的请求传给浏览器的driver,实施调用,实际上seleniu...

2019-10-28 14:30:28 405

空空如也

空空如也

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

TA关注的人

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