- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 【TestNG快板说九】如何使用@Factory进行测试类的多样化执行
开始,我们先来思考一个场景,有一个测试类需要根据测试传入的N个参数进行N次执行。方式一,可以直接在suite.xml中设置多个class,输入不同的参数执行测试用例xml配置:<suite name="Factory Test" verbose="1"> <test name="Regression1"> <parameter nam...
2019-08-16 12:59:33 544
原创 【TestNG快板说八】TestNG使用Allure生成测试报告
TestNG如何生成测试报告方式一:本地通过IDE进行测试配置maven依赖 <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> ...
2019-08-14 14:34:57 2659
原创 Jmeter测试及应用--Jmeter处理Json类型返回数据的多种方法
当一个请求的返回数据是json格式的时候,jmeter提供了三种方式去处理:Json Assertion:直接对放回的结果做断言,判断数据是否和期望的值一致。JSON Extractor:后置处理器,可以获取返回结果中的数据,然后保存到变量中,作为后面请求的参数使用。代码解析,如BeanShell:后置处理器,可以通过脚本处理,获取或判断返回结果中的数据。下面来分别介绍下这三种方法...
2020-08-12 15:30:33 1477
原创 【TestNG快板说七】TestNG增删改查数据
增删改查数据库测试难免需要进行测试数据初始化,或者进行测试数据修复及校验,那么如何才能方便的对数据库进行增删改查呢?主要的可以分为:关系型数据库的操作,mysql,sqlserver非关系型数据的操作,如redis,mongodb关系型数据库:直接调用JDBC进行数据操作使用mybatis进行数据库操作使用mybatis操作:pom.xml依赖配置 ...
2019-08-10 11:40:17 363
原创 【TestNG快板说六】TestNG测试用例并行运行
测试用例并行运行举例一个场景,有时我们会希望让多个测试用例并发的执行,去定位或者复现相关问题,那么怎么操作呢?先来讲下TestNG测试用例并发运行有几种方式运行的xml文件中配置suite,其中可以分四中并行方式,分别method, tests, classes, instances@Test中设置参数threadPoolSize先来看xml的配置方式parallel=“m...
2019-08-10 09:56:06 756
原创 【TestNG快板说五】TestNG失败用例重新运行
失败用例重新运行做自动化测试的过程中,经常会碰到一些因为环境因素导致当次测试用例运行失败的场景,重新运行就正常了,为了避免减少事后对这些测试结果的分析,我们可以对failed的测试用例设置重新运行。那么在TestNG中如何实现失败测试用例的重新云心呢?需要实现IRetryAnalyzer接口中的retry方法,拦截测试用例的运行结果,根据运行结果是否是false,判定是否要重新云心测试用...
2019-02-20 15:22:10 1710
原创 【TestNG快板说四】TestNG测试依赖、随机运行、多个suite
TestNG测试依赖两种依赖设置依赖方法method依赖组group方法的依赖:testDemo1依赖testDemo2 @Test(groups = {"smoke", "uat"}, dependsOnMethods = {"testDemo2"}) public void testDemo1() throws InterruptedException{ ...
2019-02-19 15:46:48 769
原创 【TestNG快板说三】TestNG分组、捕获异常、传参
TestNG测试分组配置@Test可以通过@Test给多个测试类的测试用例分组,比如某个测试用例既属于smoke又属于uat,那么就可以配置如下: @Test(groups = {&quot;smoke&quot;, &quot;uat&quot;}) public void testDemo1() throws InterruptedException{ System.out.print(&am
2019-02-14 08:36:51 1133 2
原创 【TestNG快板说二】TestNG常见Annotation的使用
哪些常见Annotation@Test:标记需要运行的测试方法;@BeforeMethod:测试方法运行之前执行;@AfterMethod:测试方法完成之后执行;@BeforeClass:在类中第一个测试方法被执行之前执行;@AfterClass:在类中所有方法运行完成后执行;@BeforeTest:在testng.xml中<test>标志代...
2019-01-31 13:32:50 392
原创 【TestNG快板说一】TestNG、Maven、testng.xml构建测试工程
目录创建一个maven工程pom.xml中的内容编写测试用例testng.xml的内容通过IDEA运行testng.xml命令行运行testng.xml创建一个maven工程使用Idea创建maven工程建立类似如上的工程结构,src/main/java,src/test/java,pom.xml,testng.xml,这里由于我们使用工程是用来进行...
2019-01-31 10:19:40 744
原创 Jmeter测试及应用--BeanShell介绍和使用
目录BeanShell是什么?Jmeter中有哪些BeanShell组件BeanShell常用内置变量BeanShell是什么?BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言;BeanShell是用Java写成的,一个小型的、免费的、可以下载、嵌入式的Java源代码解释器,具有对象脚本的特性;Bea...
2018-10-24 15:38:07 13039
原创 Jmeter测试及应用--如何使用CSV Data Set Config获取参数
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 ...
2018-10-24 14:19:17 3063
原创 Jmeter测试及应用--如何使用BeanShell断言判断请求返回的Json相应结果
脚本结构 上图中,queryMaterialApiDTOListByPkIds是返回Json格式响应结果的请求,然后添加BeanShell断言详细判断Json结果中的值是否正确。 Json格式的相应结果 { "code": 0, "msg": "success", "success": true, "data": [ { "materialCode"
2018-10-24 10:48:03 7899 2
原创 Jmeter测试及应用--接口请求完成后,查询数据库结果,检测数据存储是否正确
Jmeter脚本逻辑 发送POST请求,把数据保存到数据库中 发讯数据库,数据库查询结果保存的变量中 使用BeanShell判断数据库查询结果 Jmeter脚本结构 第一个箭头指的是JDBC Connection Configuration 第二个箭头建立的一个普通事物控制器,方便管理不同的请求案例 第三个箭头是一个JDBC Request ...
2018-10-18 22:50:51 8004 4
原创 【Python开发及测试】tsql连接正常,pymssql无法连接
先来看异常:Traceback (most recent call last): File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734) File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821) File "_mssql.pyx",...
2018-07-20 14:09:57 4002 1
原创 Jmeter测试及应用--使用Java请求进行Dubbo接口的测试
如何构建一个Dubbo接口测试的通用框架从上面的流程我们可以看出,测试类大致的一个结构:使用json文件来构造测试数据 java程序只对json文件进行解析 接口调用成功后,用json文件中的期望数据来对接口返回数据进行比对,判断调用是否成功json文件的定义{ "Connection": { "URL": "101.219.255.73:50883", "S...
2018-07-09 22:11:11 2735
原创 【linux工具制作】---- ssh登录管理工具ssh2remote
github下载地址:https://github.com/nitibu/shutils在远程服务器上工作,除了用一些工具,还可以直接用ssh命令来链接,但是每次敲命令也很烦,于是就自己写个小工具来管理,下面附上工具代码:#!/bin/bashWORKDIR=`dirname $(which ssh2remote)`CONFIG=$(cat $WORKDIR/ssh2remote....
2018-02-13 17:05:14 1315
原创 【Android开发】App消息中心构建
如何构建App消息中心主要涉及到的类LauncherApplication.javaMsgCenter.javaMsgUtilMsgPackageMsgEventLauncherApplication.java 这里重写了android的Application类,同时定义了一个公有的静态的消息变量sMsgCenter,然后在init中初始化:public static MsgCent
2018-01-02 15:50:49 2284
原创 【Python开发及测试】lava中setup.py解析
#### setup.py内容 setup( name='lava-server', version=version_tag(), author="Zygmunt Krynicki", author_email="lava-team@linaro.org", namespace_packages=['lava', ], packages=find_p
2017-12-29 14:09:01 590
原创 Thread.yield后线程释放资源的时间节点
当synchronized方法中进行调用Thread.yield,线程之间的cpu调度是怎么样的?class Count { private int count = 0; private Random rand = new Random(47); /** * 这里为了实现多线程之间的同步,increment标注为synchronized, * 同时里面调用y
2017-07-31 20:27:16 730
原创 【Java问题记录】Java常见问题记录
什么是this逃逸 this逃逸是指构造函数返回之前其他线程持有该对象的引用,this逃逸经常发生在构造函数中启动线程或注册监听器。public class ThisEscape { private String value = ""; public ThisEscape() { new Thread(new TestDemo()).start();
2017-07-28 08:31:35 429
原创 【数据库及SQL】常用SQL命令
从表中计算某一列相同字段的个数,并且按照降序排列select pcmtxt, count(*) as counts from pcm2txt_db_1 group by pcmtxt order by counts desc; count(*)—-计数函数 as counts —-输出到counts列 group by 把相同字段分为一组 order by counts de
2017-07-24 09:47:08 277
原创 【Python开发及测试】Python发送邮件
#-*- coding: UTF-8 -*-#目的:发送普通文本和超文本邮件,并且把携带的附件显示在超文本文件中#环境:同在163的服务器下发送和接收邮件from email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.image import MIMEI...
2015-10-09 15:45:45 771
原创 【Java单元测试】Ant+Junit产生java的单元测试报告
这篇文章的目的就是用来记录一下java单元测试报告产生的过程,防止时间久忘记。 先讲直接使用eclipse去搭建一个测试环境的流程:上面是一个简单例子的搭建,src中存放源码,test中存放测试代码,注意添加test文件夹后请把它add到build_path中。 接着我们来看一下Calculator.java和CalculatorTest.java package...
2015-09-15 13:19:26 5789
原创 python unittest源码解析四----关于源码中的__unittest的用处
读python的unittest源码的时候,发现每个文件的开头部分都有这样一句话:__unittest = True我们知道,下划线在python中含有特殊的意义,而双下线(double underline scope)就表示私有的,那么这里在每个文件中定义一个私有的全局变量__unittest是干嘛用?叙述它的用途之前,我们先来认识一下python中的两个内部类型:Frame o
2015-09-12 15:09:11 1375
原创 Android测试四----TestRunner源码分析。
通过JUnit,我们可以指定需要运行的测试用例。 public static Test suite() { suite.addTest(new MathTest("testAdd")); suite.addTest(new MathTest("testDivideByZero")); return suite; }我们可以定义一个静态的suite方法,通
2015-09-10 16:18:32 810
原创 【Python测试】unittest源码解析三----loader.py之_get_name_from_path(self, path)
def _get_name_from_path(self, path): path = os.path.splitext(os.path.normpath(path))[0] _relpath = os.path.relpath(path, self._top_level_dir) assert not os.path.isabs(_re...
2015-09-06 16:03:43 1469
原创 【Python测试】unittest源码解析二----Test Discovery
python -m unittest discover /home/kortide "Atest.py"上面是执行我放在桌面的Atest.py测试模块。 这里的-m什么意思呢?python -h说明如下: -m mod : run library module as a script (terminates option list)把库模块作为一个脚本来运行,当把un...
2015-09-06 12:56:47 7046
原创 【Python测试】unittest源码解析一----测试用例是如何被执行的
在Python的单元测试中,有各种不同方式来执行用户的测试用例,在接下来的篇幅中,我们会详细叙述每种方式的具体执行流程。先来看下unittest中的__init__.py中提供的一个测试用例案例: import unittest class IntegerArithmeticTestCase(unittest.TestCase): def testA...
2015-09-01 19:22:27 7334
原创 Appium的python_client的安装过程解析。
使用Appium,通常需要使用一种language的client,如果使用python,你就需要安装python_client。下载后,源码中README会告诉你:3. Install from source via [GitHub](https://github.com/appium/python-client). ```shell git clone git@g
2015-08-29 15:52:01 4940
原创 Ubuntu下Appium环境搭建。
闲着没事,就搭建了一下appium的环境,玩了一下,下面是具体过程,有需要的朋友可以参考。其实流程官网上都有,这里就把它摘出来,使其连贯。下载源码:git clone git://github.com/appium/appium安装Node.jsSetup with Ubuntu:curl --silent --location https://deb.node
2015-08-27 14:18:59 2743
原创 Android测试三----TestSuite源码分析。
android中说TestSuite是Tests的混合物。这里的测试类,我们可以把它理解为很多的测试类。我们可以通过TestSuite去收集一堆测试用例,然后去运行她们。1.android中给出了动态往TestSuite中添加测试用例的方式:TestSuite suite= new TestSuite();suite.addTest(new MathTest("tes
2015-08-25 14:56:54 1416
原创 PackageManager.java中的方法resolveContentProvider的参数说明有误。
今天在测试Android中的一个方法遇到这样一个问题: /** * Find a single content provider by its base path name. * * @param name The name of the provider to find. * @param flags Additional option flag
2015-08-21 16:32:46 4098
原创 android中是如何对包进行解析--解析ContentProvider
如果了解过android的启动流程,我们知道android在启动的时候会去解析/data/system和/data/app下已经存在的apk。那么是从哪里开始对这些包进行解析的呢?1.public static final IPackageManager main(Context context, Installer installer, boolean f
2015-08-21 14:29:39 1127
原创 Elastos获取测试用例列表工具--gtci.py(get testcase info)
1. gtci.py# -*- coding: utf-8 -*-import sys,osfrom testcaseinfo import TestCaseInfofrom runlistinfo import RunListInfoif __name__ == '__main__': reload(sys) if (len(sys.argv) < 2):
2015-08-13 09:00:05 938
原创 【C/C++开发及测试】Elastos测试框架搭建--测试用例运行流程
框架的功能:1. 把测试类的所有接口的测试方法打包成一个epk2. 通过启动工具启动测试用例的epk,运行包含的测试用例 1. 启动epk(类似apk,启动的时候进入onCreate) ECode CActivityOne::OnCreate( /* [in] */ IBundle* savedInstanceState){ Activity::OnC...
2015-08-12 17:33:08 630
原创 【Shell脚本】elastos自动下载、更新源码工具--DownloadCode.sh
主要功能:1. 可以自动下载Elastos源码以及测试代码ElasosTest2. 根据git提交记录判定是否更新源码DownloadCode.sh #!/bin/bashsource setEnv.shSTART_TIME=`date +%s`export ELASTOS_VERSION="ElastosRDK4_2_2"export ELASTOS_DIR=$H...
2015-08-12 13:54:45 805
原创 如何将两个有序链表合并成一个有序链表。
有两个带头节点的有序链表,如何把他们合成一个有序链表?(假设链表带头节点)我们通过取出其中一条链表的头节点作为合成后的有序链表的头节点(当然,这里也可以自己重新生成一个节点来作为头节点,但是使用原先的可以节省开销)。取出后,这既是新链表的head,也是它的tail,因为新链表现在只有这么一个节点,我们用tail标记一下它。接下去,我们去比较两条链表的数值,取较小值的节点追加到新的链表的
2015-08-11 17:22:37 7543 3
原创 Android测试二----InstrumentationTestRunner运行测试用例机制
前面讲到am怎么启动cts的测试进程,接下来了解下测试用例是如何被运行的。1.InstrumentationTestRunner.java 首先进入onCreate方法:// Apk paths used to search for test classes when using TestSuiteBuilders.String[] apkPaths =
2015-08-10 22:17:26 2100
原创 Android测试一----am启动应用流程
Am.java 1.执行main方法public static void main(String[] args) { try { (new Am()).run(args); } catch (IllegalArgumentException e) { showUsage(); Syste
2015-08-10 22:01:51 2974
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人