<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nitibu的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/nitibu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; nitibu]]></copyright><item><title><![CDATA[Jmeter测试及应用--Jmeter处理Json类型返回数据的多种方法]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/100070547</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/100070547</guid><author>nitibu</author><pubDate>Wed, 12 Aug 2020 15:30:33 +0800</pubDate><description><![CDATA[当一个请求的返回数据是json格式的时候，jmeter提供了三种方式去处理：


Json Assertion：直接对放回的结果做断言，判断数据是否和期望的值一致。
JSON Extractor：后置处理器，可以获取返回结果中的数据，然后保存到变量中，作为后面请求的参数使用。
代码解析，如BeanShell：后置处理器，可以通过脚本处理，获取或判断返回结果中的数据。

下面来分别介绍下这三种方法...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说九】如何使用@Factory进行测试类的多样化执行]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/99631547</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/99631547</guid><author>nitibu</author><pubDate>Fri, 16 Aug 2019 12:59:33 +0800</pubDate><description><![CDATA[开始，我们先来思考一个场景，有一个测试类需要根据测试传入的N个参数进行N次执行。

方式一，可以直接在suite.xml中设置多个class，输入不同的参数执行测试用例

xml配置：
&lt;suite name="Factory Test" verbose="1"&gt;
    &lt;test name="Regression1"&gt;
        &lt;parameter nam...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说八】TestNG使用Allure生成测试报告]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/99557167</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/99557167</guid><author>nitibu</author><pubDate>Wed, 14 Aug 2019 14:34:57 +0800</pubDate><description><![CDATA[TestNG如何生成测试报告

方式一：本地通过IDE进行测试


配置maven依赖

		&lt;dependency&gt;
            &lt;groupId&gt;io.qameta.allure&lt;/groupId&gt;
            &lt;artifactId&gt;allure-testng&lt;/artifactId&gt;
           ...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说七】TestNG增删改查数据]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/99057673</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/99057673</guid><author>nitibu</author><pubDate>Sat, 10 Aug 2019 11:40:17 +0800</pubDate><description><![CDATA[增删改查数据库

测试难免需要进行测试数据初始化，或者进行测试数据修复及校验，那么如何才能方便的对数据库进行增删改查呢？

主要的可以分为：

关系型数据库的操作，mysql，sqlserver
非关系型数据的操作，如redis，mongodb


关系型数据库：


直接调用JDBC进行数据操作
使用mybatis进行数据库操作

使用mybatis操作：

pom.xml依赖配置

     ...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说六】TestNG测试用例并行运行]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/99044380</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/99044380</guid><author>nitibu</author><pubDate>Sat, 10 Aug 2019 09:56:06 +0800</pubDate><description><![CDATA[测试用例并行运行
举例一个场景，有时我们会希望让多个测试用例并发的执行，去定位或者复现相关问题，那么怎么操作呢？

先来讲下TestNG测试用例并发运行有几种方式

运行的xml文件中配置suite，其中可以分四中并行方式，分别method, tests, classes, instances
@Test中设置参数threadPoolSize



先来看xml的配置方式

parallel=“m...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说五】TestNG失败用例重新运行]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/87799454</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/87799454</guid><author>nitibu</author><pubDate>Wed, 20 Feb 2019 15:22:10 +0800</pubDate><description><![CDATA[失败用例重新运行
做自动化测试的过程中，经常会碰到一些因为环境因素导致当次测试用例运行失败的场景，重新运行就正常了，为了避免减少事后对这些测试结果的分析，我们可以对failed的测试用例设置重新运行。

那么在TestNG中如何实现失败测试用例的重新云心呢？

需要实现IRetryAnalyzer接口中的retry方法，拦截测试用例的运行结果，根据运行结果是否是false，判定是否要重新云心测试用...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说四】TestNG测试依赖、随机运行、多个suite]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/87713464</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/87713464</guid><author>nitibu</author><pubDate>Tue, 19 Feb 2019 15:46:48 +0800</pubDate><description><![CDATA[TestNG测试依赖
两种依赖设置

依赖方法method
依赖组group


方法的依赖:testDemo1依赖testDemo2

    @Test(groups = {&quot;smoke&quot;, &quot;uat&quot;}, dependsOnMethods = {&quot;testDemo2&quot;})
    public void testDemo1() throws InterruptedException{
   ...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说三】TestNG分组、捕获异常、传参]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/87248540</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/87248540</guid><author>nitibu</author><pubDate>Thu, 14 Feb 2019 08:36:51 +0800</pubDate><description><![CDATA[TestNG测试分组
配置@Test

可以通过@Test给多个测试类的测试用例分组，比如某个测试用例既属于smoke又属于uat，那么就可以配置如下：

    @Test(groups = {&amp;amp;quot;smoke&amp;amp;quot;, &amp;amp;quot;uat&amp;amp;quot;})
    public void testDemo1() throws InterruptedException{
        System.out.print(&amp;am]]></description><category></category></item><item><title><![CDATA[【TestNG快板说二】TestNG常见Annotation的使用]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/86713457</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/86713457</guid><author>nitibu</author><pubDate>Thu, 31 Jan 2019 13:32:50 +0800</pubDate><description><![CDATA[哪些常见Annotation


@Test:标记需要运行的测试方法；

@BeforeMethod:测试方法运行之前执行；

@AfterMethod:测试方法完成之后执行；

@BeforeClass:在类中第一个测试方法被执行之前执行；

@AfterClass:在类中所有方法运行完成后执行；

@BeforeTest:在testng.xml中&lt;test&gt;标志代...]]></description><category></category></item><item><title><![CDATA[【TestNG快板说一】TestNG、Maven、testng.xml构建测试工程]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/86710786</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/86710786</guid><author>nitibu</author><pubDate>Thu, 31 Jan 2019 10:19:40 +0800</pubDate><description><![CDATA[目录

创建一个maven工程

pom.xml中的内容

编写测试用例

testng.xml的内容

通过IDEA运行testng.xml

命令行运行testng.xml

创建一个maven工程

使用Idea创建maven工程




建立类似如上的工程结构，src/main/java，src/test/java，pom.xml，testng.xml，这里由于我们使用工程是用来进行...]]></description><category></category></item><item><title><![CDATA[Jmeter测试及应用--BeanShell介绍和使用]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/83344977</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/83344977</guid><author>nitibu</author><pubDate>Wed, 24 Oct 2018 15:38:07 +0800</pubDate><description><![CDATA[目录BeanShell是什么？Jmeter中有哪些BeanShell组件BeanShell常用内置变量
BeanShell是什么？

BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
BeanShell是一种松散类型的脚本语言；
BeanShell是用Java写成的，一个小型的、免费的、可以下载、嵌入式的Java源代码解释器，具有对象脚本的特性；
Bea...]]></description><category></category></item><item><title><![CDATA[Jmeter测试及应用--如何使用CSV Data Set Config获取参数]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/83342623</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/83342623</guid><author>nitibu</author><pubDate>Wed, 24 Oct 2018 14:19:17 +0800</pubDate><description><![CDATA[Jmeter提供CSV Data Set Config作为参数获取的一种方式
	1、文件名：csv文件的绝对路径
	2、文件编码：根据运行环境设置，个人常用的是mac和linux，所以这里选择UTF-8
	3、变量名称：每次读取到的值都会按顺序放到设置好的变量名称中，比如有变量名var1,var2,var3，csv中一行元素为a,b,c,d，那么结果就是var1=a，var2=b，var3=c
	...]]></description><category></category></item><item><title><![CDATA[Jmeter测试及应用--如何使用BeanShell断言判断请求返回的Json相应结果]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/83339858</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/83339858</guid><author>nitibu</author><pubDate>Wed, 24 Oct 2018 10:48:03 +0800</pubDate><description><![CDATA[脚本结构
	上图中，queryMaterialApiDTOListByPkIds是返回Json格式响应结果的请求，然后添加BeanShell断言详细判断Json结果中的值是否正确。
	
	
	Json格式的相应结果

	
{
	&quot;code&quot;: 0,
	&quot;msg&quot;: &quot;success&quot;,
	&quot;success&quot;: true,
	&quot;data&quot;: [
		{
			&quot;materialCode&quot;]]></description><category></category></item><item><title><![CDATA[Jmeter测试及应用--接口请求完成后，查询数据库结果，检测数据存储是否正确]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/83154473</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/83154473</guid><author>nitibu</author><pubDate>Thu, 18 Oct 2018 22:50:51 +0800</pubDate><description><![CDATA[Jmeter脚本逻辑
	

	发送POST请求，把数据保存到数据库中
	
	
	发讯数据库，数据库查询结果保存的变量中
	
	
	使用BeanShell判断数据库查询结果
	

	Jmeter脚本结构
	
第一个箭头指的是JDBC Connection Configuration
	第二个箭头建立的一个普通事物控制器，方便管理不同的请求案例
	第三个箭头是一个JDBC Request
	...]]></description><category></category></item><item><title><![CDATA[【Python开发及测试】tsql连接正常，pymssql无法连接]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/81131081</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/81131081</guid><author>nitibu</author><pubDate>Fri, 20 Jul 2018 14:09:57 +0800</pubDate><description><![CDATA[先来看异常：


Traceback (most recent call last):
  File &quot;pymssql.pyx&quot;, line 635, in pymssql.connect (pymssql.c:10734)
  File &quot;_mssql.pyx&quot;, line 1902, in _mssql.connect (_mssql.c:21821)
  File &quot;_mssql.pyx&quot;,...]]></description><category></category></item><item><title><![CDATA[Jmeter测试及应用--使用Java请求进行Dubbo接口的测试]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/80977484</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/80977484</guid><author>nitibu</author><pubDate>Mon, 09 Jul 2018 22:11:11 +0800</pubDate><description><![CDATA[如何构建一个Dubbo接口测试的通用框架
从上面的流程我们可以看出，测试类大致的一个结构：

使用json文件来构造测试数据
	java程序只对json文件进行解析
	接口调用成功后，用json文件中的期望数据来对接口返回数据进行比对，判断调用是否成功
json文件的定义


{
  "Connection": {
    "URL": "101.219.255.73:50883",
    "S...]]></description><category></category></item><item><title><![CDATA[【linux工具制作】---- ssh登录管理工具ssh2remote]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/79321990</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/79321990</guid><author>nitibu</author><pubDate>Tue, 13 Feb 2018 17:05:14 +0800</pubDate><description><![CDATA[github下载地址：https://github.com/nitibu/shutils

在远程服务器上工作，除了用一些工具，还可以直接用ssh命令来链接，但是每次敲命令也很烦，于是就自己写个小工具来管理，下面附上工具代码：


#!/bin/bash

WORKDIR=`dirname $(which ssh2remote)`
CONFIG=$(cat $WORKDIR/ssh2remote....]]></description><category></category></item><item><title><![CDATA[【Android开发】App消息中心构建]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/78952583</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/78952583</guid><author>nitibu</author><pubDate>Tue, 02 Jan 2018 15:50:49 +0800</pubDate><description><![CDATA[如何构建App消息中心
主要涉及到的类LauncherApplication.java
MsgCenter.java
MsgUtil
MsgPackage
MsgEvent
LauncherApplication.java  这里重写了android的Application类，同时定义了一个公有的静态的消息变量sMsgCenter，然后在init中初始化：
public static MsgCent]]></description><category></category></item><item><title><![CDATA[【Python开发及测试】lava中setup.py解析]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/78930931</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/78930931</guid><author>nitibu</author><pubDate>Fri, 29 Dec 2017 14:09:01 +0800</pubDate><description><![CDATA[#### setup.py内容 
setup(
    name='lava-server',
    version=version_tag(),
    author=&amp;quot;Zygmunt Krynicki&amp;quot;,
    author_email=&amp;quot;lava-team@linaro.org&amp;quot;,
    namespace_packages=['lava', ],
    packages=find_p]]></description><category></category></item><item><title><![CDATA[Thread.yield后线程释放资源的时间节点]]></title><link>https://blog.youkuaiyun.com/nitibu/article/details/76468199</link><guid>https://blog.youkuaiyun.com/nitibu/article/details/76468199</guid><author>nitibu</author><pubDate>Mon, 31 Jul 2017 20:27:16 +0800</pubDate><description><![CDATA[当synchronized方法中进行调用Thread.yield，线程之间的cpu调度是怎么样的？class Count {
    private int count = 0;
    private Random rand = new Random(47);    /**
     * 这里为了实现多线程之间的同步，increment标注为synchronized，
     * 同时里面调用y]]></description><category></category></item></channel></rss>