自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

令重生的博客

坚持不懈,水滴石穿

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

原创 UI自动化测试进阶第一步-Selenium,这个框架不简单

UI自动化测试进阶第一步-Selenium,这个框架不简单

2022-06-13 23:03:38 131 1

原创 TestNG学习路线-从自动化初级开发者到框架开发专家

介绍TestNG并发执行方式、实现原理及注意事项

2022-06-12 00:51:05 161

原创 全面了解TestNG,十分钟成为TestNG专家

五分钟全面了解Testng

2022-06-08 03:48:40 130

原创 TestNG 专家进阶,TestNG源码-模块功能

TestNG源码-模块功能

2022-06-08 03:47:46 96

原创 成为混沌工程专家的第一步,全面了解混沌工程

十分钟全面了解混沌工程

2022-06-08 03:46:13 75

原创 结合流量压力模样论性能测试类型

TestNG源码-实体抽象

2022-06-08 03:44:54 65

原创 TestNG专家进阶,TestNG源码调试

TestNG源码-实体抽象

2022-06-08 03:43:37 111

原创 TestNG 专家进阶,Testng源码-实体抽象

TestNG源码-实体抽象

2022-06-08 03:42:20 65

原创 不玩虚的,实战代码,TestNG+Selenium进行UI测试

TestNG+Selenium进行UI测试

2022-06-08 03:38:31 1084

原创 研发效能的文化精髓,再不学就Out 了

什么是研发效能

2022-06-08 03:33:40 89

原创 如何用Idea调试Maven插件

调试端:maven插件源码端被调试端:maven项目端,使用maven插件构建和调试普通程序一样(只是调试命令有区别),过程原理如下:注:原理图片摘自https://www.cnblogs.com/turn2i/p/11823884.html启动端口监听:在被调试端执行mvndebug命令,可以进入debug模式输出以下信息mvndebug clean testPreparing to execute Maven in debug modeListening for t.

2021-08-15 11:09:00 834

原创 Jacoco生命周期

最近看Jacoco源码并进行修改来实现增量覆盖率的功能,Jacoco的插桩使用分为on-the-fly和offline两种方式:on-the-fly:通过在程序运行时指定javaagent,运行产出只包含覆盖率的结果Jacoco.exec,对原始jar不做修改。 offline:通过修改字节码生成插桩后的字节码,然后执行插桩后的字节码运行,同样产出覆盖率文件Jacoco.exec。通过maven插件均可以应用on-the-fly和offline两种模式。offline模式 &lt..

2021-08-14 10:02:16 603

原创 Gson转Map结果int类型变为Double

用gson将string反序列化为Map时,int类型变成了double类型。原因分析 new Gson().fromJson("{\"aid\":123,\"aa\":11.0}", Map.class); // 结果为{"aid":123.0,"aa":11.0}通过看gson解析过程,gson通过TypeAdapter的read方法来读取string的值并转化为对象:public <T> T fromJson(JsonReader reader, Type typeOfT) t

2021-07-28 20:20:39 2473

原创 西安三日游

2021-07-22 20:46:37 117

原创 String vs StringBuffer vs StringBuilder

代码实现String 类是一个final类型的不可变类,所以在对String类进行操作时,都会创建一个新的String类,造成空间和时间的开销。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { }StringBuilder类 和StringBuffer类均实现了相同的接口和继承了相同的父类,只是StringBuffer的方法上加了syn

2021-07-13 12:27:29 102

原创 Spring bean加载顺序和执行顺序

在spring中,有时会存在实现多个相同类/接口的bean,而有时我们希望bean的加载或执行按照某种顺序执行。二话不说,先给出一个实现控制bean加载和执行顺序的实例有一个测试接口TestInterface,及其三个实现类:UnitTest、InterTest、UiTest,希望按照UiTest->InterTest->UnitTest的顺序加载bean,并按照UnitTest->InterTest->UiTest顺序执行定义一个测试接口package com.ex

2021-02-01 16:46:10 5748 1

原创 Java类加载器

类的生命周期类加载器种类Bootstrap ClassLoader:根类加载器,加载jdk/lib下的类。Extention ClassLoader:扩展类加载器,加载jdk/lib/extention下的类,jdk9后改为Platform ClassLoader。Application CalssLoader:应用程序类加载器,加载普通的应用程序。package example;import javax.xml.crypto.Data;public class Test1 { .

2020-12-05 17:47:21 514 1

翻译 Jacoco Java方法控制流分析

Jacoco基于编译后的字节码来分析方法控制流,分析指令覆盖率和分支覆盖率时需要控制流信息。Java字节码控制流图:public static void example() { a(); if (cond()) { b(); } else { c(); } d();}public static example()V INVOKESTATIC a()V INVOKESTATIC cond()Z

2020-08-28 22:26:56 613

翻译 Jacoco实现原理

覆盖率分析机制覆盖率信息必须在运行时收集,Jacoco on-the-fly 模式通过jacoco agent在类加载时对原始类进行插桩,得到插桩后的类。收集覆盖率信息有几种方法,没有方法有几种不同的实现机制,橙色部分为Jacoco on-the-fly收集方式字节码插桩非常快,通过纯java实现,并且可以在任意java 虚拟机上运行。On-the-fly插桩模式通过为java虚拟机添加Java agent hook实现,不用改变目标应用程序。Java agent hook需要Jvm 1.5版本以

2020-08-15 23:38:09 4787

翻译 Jacoco 类标识符

jacoco在统计覆盖率时通过类标识符(class id)来标识一个类,接下来我们了解下Jacoco类标识符什么是类标识符,它们是如何创建的类标识符是一个64位整数,例如0x638e104737889183,是通过计算原始的class文件的CRC64产生的。类标识符有什么用类标识符用于识别Java类,在被加载的类运行时产生并存储在*.exec文件中,在分析的时候,比如在报告产生的时候,会通过类标识符把待分析的类和执行数据关联起来。Jacoco类标识符的优点及缺点优点:当服务部署了不同版本的应用,

2020-08-14 18:38:32 733

原创 Jacoco Maven插件

Jacoco Maven插件提供运行时代理来产出测试覆盖率报告。条件maven版本3.0或更高版本运行和测试Java版本高于1.5使用

2020-08-13 18:45:22 2627

原创 如何理解Spring 依赖注入

我们为了给用户提供服务、开发满足用户需求的软件产品,需要编写代码,把一块块砖垒起来。随着用户越来越多,开发任务也越来越重,需要快速响应形形色色的用户需求,如此反复,代码也越来越多,软件的开发和维护成本越来越大,这样快速的开发及维护日益庞大的系统成了项目组一个新的诉求。选用一款易于上手、大众、设计良好的框架,可以帮助我们较好完成模块划分、管理及交互,基于框架业务开发人员可以减少很多代码量完成同样的功能,降低代码耦合度,提高复用率,快速接入各类组件和中间件。

2020-08-12 17:37:17 439

原创 IntelliJ IDE 覆盖率配置

本文主要详细介绍在IntelliJ IDE中执行测试并展示覆盖情况 本文IntelliJ IDE版本为2020.1插件安装安装Coverage插件,通过插件可以在IDE中展示被测代码的覆盖情况,配置路径为IntelliJ IDE -> Preferences -> Plugins,搜索Coverage并安装安装后就可以点击测试用例运行时选择Run with Coverage,或者右键测试类选择Run with Coverage插件配置配置路径 IntelliJ IDE.

2020-08-11 12:25:30 12397

翻译 Jacoco覆盖率

Jacoco通过若干计数来统计覆盖率,这些计数基于class文件中的java 字节码指令和debug信息获取的,不依赖于源码,并且多数情况下,这些信息可以映射到源码行。其局限性就是要依赖于debug信息来计算行覆盖率,并不是所有的java指令都能编译成适合的字节码,俗称合成码,这种情况下计算的覆盖率不准确。行覆盖条件:如上所述,计算行覆盖率需要debug信息计算:至少行中的一条指令运行,则该行被覆盖分类:由于一行代码通常包含多条指令,根据指令的执行情况细分:- 无覆盖率:没有指令覆盖(红色)-

2020-08-06 20:13:44 1429

原创 Jacoco简介

Jacoco的出发点是为基于JVM运行的代码提供代码覆盖率统计,期望提供轻量级的、可伸缩的、文档较全的库文件来集成各类构建和开发工具。Java代码覆盖率工具有几款开源工具,当实现Eclipse插件EclEmma时,他们都不方便集成,大部门只适用于一款工具(ant,命令行,IDE插件),没有相关文档说明如何集成到不同的上下文环境中。其中两款比较好用的是EMMA 和 Cobertura,不过这两款原作者都不再维护了,也不再支持最新的JVM了,主要由于缺乏回归测试,造成添加新特征比较困难。特此,作者开始开发J

2020-08-04 19:22:30 8197

原创 Junit5 + Jacoco Maven配置

Junit依赖参照 [官网](https://junit.org/junit5/docs/current/user-guide/#dependency-metadata) [中文](https://www.bookstack.cn/read/junit5/guide-installation-dependency-metadata.md) [依赖关系](https://www.bookstack.cn/read/junit5/guide-installation-dependency-di

2020-07-29 15:04:20 1547

原创 Testng思维导图

testng

2020-07-21 17:17:40 150

原创 Java依赖冲突

什么是依赖冲突解决思路实例介绍

2020-07-10 13:12:30 695

原创 JsonSchema进行接口测试

何为JsonSchema有什么用接口测试实例

2020-07-10 13:07:58 336

原创 思维导图学Maven实战

持续更新中…

2020-07-08 10:26:47 215

原创 Java注解实现权限管理

一个简单的权限控制场景,已知登录用户id,判断这个用户是否存在数据库中,如果不存在则不允许进行任何操作。关于java注解介绍请参见 Java自定义注解实现权限管理基础实现在每个controller方法中添加用户校验代码,这种可以控制到方法级,但是每个方法都要维护这段重复逻辑。@RequestMapping(value = "/task/progress", method = RequestMethod.GET) public RestRsp getLabelTaskProgress(

2020-07-02 22:21:09 3057

原创 单测中对对象进行Assert比较

在单测中,当期望结果(Expect)和实际结果(Actual)都是对象时,进行Assert.assertEquals判断时,可能会不符合预期,我们认为符合预期的测试结果还是失败,主要还是对象equals方法导致的。原因分析解决方法具体实现...

2020-07-02 10:45:31 2280

原创 聊聊单元测试

作为一名质量管理人员,从刚入行时就接触到单元测试:需求体测时要保证一定的单元测试覆盖率作为提测准入;进行线上问题case study时会先问,这个bug单测是否可以发现;还有各种质量度量。对于单元测试的意义,绝非一个指标或几个指标可以度量的,或许你看到的指标只是一个Trick。单元测试测什么 对于单元测试测什么,怎么写,貌似很多同学甚至研发也搞不清楚,每次要进行CI集成发现好多单测通不过,错误原因五花八门,诸如:依赖的下游服务调用失败,mysql连不上或者由于脏数据引发的失败,读写文件找不...

2020-06-28 22:14:45 365

空空如也

空空如也

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

TA关注的人

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