<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[令重生的博客]]></title><description><![CDATA[坚持不懈，水滴石穿]]></description><link>https://blog.youkuaiyun.com/tyut_aa</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tyut_aa]]></copyright><item><title><![CDATA[让AI审批合同，Jev表现如何？]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/168656276</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/168656276</guid><author>tyut_aa</author><pubDate>Wed, 21 Oct 2026 15:59:12 +0800</pubDate><description><![CDATA[基础测试中，Jev准确率为77.38%，每份合同调用费用0.000228美元；Jev与Qwen-3.5-9B的平均正确率分别为79.44%和79.17%，12次全对的题数却分别为23道和18道。Jev另有5道题，12次都给出同一个错答案。这篇Jev评测从这一步入手：给定合同和一句陈述，判断原文支持、与原文矛盾，还是根本没有提到。评测针对的是根据合同原文作判断，没有覆盖完整合同审批流程，也没有测算人工复核费用。代码：https://github.com/ZF-Utokyo/Jev-Benchmark。]]></description><category></category></item><item><title><![CDATA[UI自动化测试进阶第一步-Selenium，这个框架不简单]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125269317</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125269317</guid><author>tyut_aa</author><pubDate>Mon, 13 Jun 2022 23:03:38 +0800</pubDate><description><![CDATA[UI自动化测试进阶第一步-Selenium，这个框架不简单]]></description><category></category></item><item><title><![CDATA[TestNG学习路线-从自动化初级开发者到框架开发专家]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125240929</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125240929</guid><author>tyut_aa</author><pubDate>Sun, 12 Jun 2022 00:51:05 +0800</pubDate><description><![CDATA[介绍TestNG并发执行方式、实现原理及注意事项]]></description><category></category></item><item><title><![CDATA[全面了解TestNG，十分钟成为TestNG专家]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176949</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176949</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:48:40 +0800</pubDate><description><![CDATA[五分钟全面了解Testng
]]></description><category></category></item><item><title><![CDATA[TestNG 专家进阶，TestNG源码-模块功能]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176948</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176948</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:47:46 +0800</pubDate><description><![CDATA[TestNG源码-模块功能
]]></description><category></category></item><item><title><![CDATA[成为混沌工程专家的第一步，全面了解混沌工程]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176947</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176947</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:46:13 +0800</pubDate><description><![CDATA[十分钟全面了解混沌工程]]></description><category></category></item><item><title><![CDATA[结合流量压力模样论性能测试类型]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176945</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176945</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:44:54 +0800</pubDate><description><![CDATA[TestNG源码-实体抽象]]></description><category></category></item><item><title><![CDATA[TestNG专家进阶，TestNG源码调试]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176943</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176943</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:43:37 +0800</pubDate><description><![CDATA[TestNG源码-实体抽象]]></description><category></category></item><item><title><![CDATA[TestNG 专家进阶，Testng源码-实体抽象]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176941</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176941</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:42:20 +0800</pubDate><description><![CDATA[TestNG源码-实体抽象]]></description><category></category></item><item><title><![CDATA[不玩虚的，实战代码，TestNG+Selenium进行UI测试]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176940</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176940</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:38:31 +0800</pubDate><description><![CDATA[TestNG+Selenium进行UI测试]]></description><category></category></item><item><title><![CDATA[研发效能的文化精髓，再不学就Out 了]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/125176935</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/125176935</guid><author>tyut_aa</author><pubDate>Wed, 08 Jun 2022 03:33:40 +0800</pubDate><description><![CDATA[什么是研发效能]]></description><category></category></item><item><title><![CDATA[如何用Idea调试Maven插件]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/119710539</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/119710539</guid><author>tyut_aa</author><pubDate>Sun, 15 Aug 2021 11:09:00 +0800</pubDate><description><![CDATA[调试端：maven插件源码端

被调试端：maven项目端，使用maven插件构建

和调试普通程序一样（只是调试命令有区别），过程原理如下：



注：原理图片摘自https://www.cnblogs.com/turn2i/p/11823884.html

启动端口监听：

在被调试端执行mvndebug命令，可以进入debug模式输出以下信息


mvndebug clean test

Preparing to execute Maven in debug mode
Listening for t.]]></description><category></category></item><item><title><![CDATA[Jacoco生命周期]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/119696215</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/119696215</guid><author>tyut_aa</author><pubDate>Sat, 14 Aug 2021 10:02:16 +0800</pubDate><description><![CDATA[最近看Jacoco源码并进行修改来实现增量覆盖率的功能，Jacoco的插桩使用分为on-the-fly和offline两种方式：

on-the-fly：通过在程序运行时指定javaagent，运行产出只包含覆盖率的结果Jacoco.exec，对原始jar不做修改。
	offline：通过修改字节码生成插桩后的字节码，然后执行插桩后的字节码运行，同样产出覆盖率文件Jacoco.exec。
通过maven插件均可以应用on-the-fly和offline两种模式。

offline模式


    &lt..]]></description><category></category></item><item><title><![CDATA[Gson转Map结果int类型变为Double]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/119188302</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/119188302</guid><author>tyut_aa</author><pubDate>Wed, 28 Jul 2021 20:20:39 +0800</pubDate><description><![CDATA[用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 &lt;T&gt; T fromJson(JsonReader reader, Type typeOfT) t]]></description><category></category></item><item><title><![CDATA[西安三日游]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/119008615</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/119008615</guid><author>tyut_aa</author><pubDate>Thu, 22 Jul 2021 20:46:37 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[String vs StringBuffer vs StringBuilder]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/118697266</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/118697266</guid><author>tyut_aa</author><pubDate>Tue, 13 Jul 2021 12:27:29 +0800</pubDate><description><![CDATA[代码实现
String 类是一个final类型的不可变类，所以在对String类进行操作时，都会创建一个新的String类，造成空间和时间的开销。
public final class String
    implements java.io.Serializable, Comparable&lt;String&gt;, CharSequence {
    }

StringBuilder类 和StringBuffer类均实现了相同的接口和继承了相同的父类，只是StringBuffer的方法上加了syn]]></description><category></category></item><item><title><![CDATA[Spring bean加载顺序和执行顺序]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/113523706</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/113523706</guid><author>tyut_aa</author><pubDate>Mon, 01 Feb 2021 16:46:10 +0800</pubDate><description><![CDATA[在spring中，有时会存在实现多个相同类/接口的bean，而有时我们希望bean的加载或执行按照某种顺序执行。
二话不说，先给出一个实现控制bean加载和执行顺序的实例

有一个测试接口TestInterface，及其三个实现类：UnitTest、InterTest、UiTest，希望按照UiTest-&gt;InterTest-&gt;UnitTest的顺序加载bean，并按照UnitTest-&gt;InterTest-&gt;UiTest顺序执行


定义一个测试接口

package com.ex]]></description><category></category></item><item><title><![CDATA[Java类加载器]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/110704312</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/110704312</guid><author>tyut_aa</author><pubDate>Sat, 05 Dec 2020 17:47:21 +0800</pubDate><description><![CDATA[类的生命周期
类加载器种类
Bootstrap ClassLoader：根类加载器，加载jdk/lib下的类。
Extention ClassLoader：扩展类加载器，加载jdk/lib/extention下的类，jdk9后改为Platform ClassLoader。
Application CalssLoader：应用程序类加载器，加载普通的应用程序。

package example;

import javax.xml.crypto.Data;

public class Test1 {

  .]]></description><category></category></item><item><title><![CDATA[Jacoco Java方法控制流分析]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/108065061</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/108065061</guid><author>tyut_aa</author><pubDate>Fri, 28 Aug 2020 22:26:56 +0800</pubDate><description><![CDATA[Jacoco基于编译后的字节码来分析方法控制流，分析指令覆盖率和分支覆盖率时需要控制流信息。
Java字节码控制流图：
public static void example() {
    a();
    if (cond()) {
        b();
    } else {
        c();
    }
    d();
}

public static example()V
      INVOKESTATIC a()V
      INVOKESTATIC cond()Z
     ]]></description><category></category></item><item><title><![CDATA[Jacoco实现原理]]></title><link>https://blog.youkuaiyun.com/tyut_aa/article/details/108029164</link><guid>https://blog.youkuaiyun.com/tyut_aa/article/details/108029164</guid><author>tyut_aa</author><pubDate>Sat, 15 Aug 2020 23:38:09 +0800</pubDate><description><![CDATA[覆盖率分析机制
覆盖率信息必须在运行时收集，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版本以]]></description><category></category></item></channel></rss>