1.TestNG参数化测试用例:

package com.tree.autotest.testcase.IUserBankSummaryService;

import com.datatrees.finance.risk.dataclean.service.IUserBankSummaryService;
import com.tree.autotest.BaseTestNGTest;
import com.tree.autotest.commons.CommonUtil_2;
import com.tree.autotest.commons.TestCase;
import com.tree.autotest.demo.ExcelHandle;
import com.tree.autotest.jdbc.DBIdConstant;
import com.tree.autotest.jdbc.ManagedSqlUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.*; import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by lyh on 17/3/6.
*/
public class TestGetBankIdsOfNeedMoreBill extends BaseTestNGTest {
@Autowired
private IUserBankSummaryService iUserBankSummaryService; private boolean handleOk;
private String insertSql;
private static String excel;
private static Map allCases;
private Integer testuser;
private TestCase testcase; @BeforeMethod
public void setUp() throws SQLException {
//获取excel用例列表
handleOk = true;
testcase = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-1");
testuser = Integer.valueOf(testcase.param1);
//获取SQL
insertSql = testcase.stepSql;
//删除,添加数据
handleOk &= deleteData(testuser);
handleOk &= ManagedSqlUtil.insertBySql(insertSql, DBIdConstant.MySql_Basisdata_ID); System.out.println("----->> @BeforeClass is finished");
} @DataProvider(name = "testData")
private static Object[][] dataprovide()throws IOException {
excel="src/main/resources/case/IUserBankSummaryService/TestGetBankIdsOfNeedMoreBill.xlsx";
allCases = CommonUtil_2.getAllCases(excel);
System.out.println("dataprovide方法执行");
Object[][] testData = ExcelHandle.readXlsx(excel, "用例列表");
return testData;
} @Test(dataProvider="testData")
public void test_case_1(HashMap<String, String> map) throws Exception { testuser =Integer.valueOf(map.get("userid"));
//实际值:
List<Integer> actual_list = iUserBankSummaryService.getBankIdsOfNeedMoreBill(testuser);
//预期值:
List<Integer> excepted_list = get_excepted_list(testuser);
//验证:
System.out.println("userId值:"+testuser);
System.out.println("actual_list值:"+actual_list.toString());
System.out.println("excepted_list值:"+excepted_list.toString());
System.out.println("size值:"+excepted_list.size()); if (excepted_list.size()==0){
Assert.assertEquals(actual_list.toString(), "[]");
}else {
Assert.assertEquals(actual_list.toString(), excepted_list.toString());
}
System.out.println("----->> @Test is finished");
} @AfterMethod
public void tearDown() {
testuser = Integer.valueOf(testcase.param1);
handleOk &= deleteData(testuser);
System.out.println("----->> AfterClass is finished"); } //定义数据清理
public boolean deleteData(Integer userid) {
String deleteSql = "delete from t_user_bank_summary where userid = "+userid+";";
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql, DBIdConstant.MySql_Basisdata_ID);
return handleOk;
}
//预期值 public List<Integer> get_excepted_list(Integer userid)throws SQLException{
String searchSql = " SELECT a.BankId " +
" FROM t_user_bank_summary a, (SELECT MAX(Id) mid " +
" FROM t_user_bank_summary " +
" WHERE UserId ="+userid+" " +
" GROUP BY BankId) t " +
" WHERE a.id = t.mid AND EffectiveBillCount12M<11";
ResultSet rs = ManagedSqlUtil.selectBySql(searchSql,DBIdConstant.MySql_Basisdata_ID);
List<Integer> list = new ArrayList<Integer>();
while (rs.next()){
list.add(rs.getInt(1));
}
return list;
} }
2.test suite配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="1" name="Suite" parallel="tests">
<test name="risk-dataclean-test">
<packages>
<package name="com.tree.autotest.testcase.IUserCustomerService"/>
<package name="com.tree.autotest.testcase.IVariableService"/>
<package name="com.tree.autotest.testcase.IUserBillService"/>
<package name="com.tree.autotest.testcase.IUserBankService"/>
<package name="com.tree.autotest.testcase.IUserBankSummaryService"/>
<package name="com.tree.autotest.testcase.ICustomerBackService"/>
<package name="com.tree.autotest.testcase.IInsuranceBillService"/>
</packages>
<!--<classes>-->
<!--<class name="com.tree.autotest.testcase.IUserBankService.TestSelectListByUserId"/>-->
<!--</classes>-->
</test> <!-- Test -->
</suite> <!-- Suite -->
3.Pom.xml设置需运行的testng.xml文件路径和依赖:
配置插件:
<!--添加插件 关联testNg.xml-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<file>src/main/java/com/tree/autotest/testsuite/testng.xml</file>
</suiteXmlFiles>
<!--<workingDirectory>target/</workingDirectory>-->
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter</value>
</property>
</properties>
<workingDirectory>target/</workingDirectory>
<forkMode>always</forkMode>
</configuration> </plugin> 配置POM.xml testNG相关依赖
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.4</version>
</dependency> <!-- 依赖reportNg 关联testNg-->
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency> <!-- 依赖Guice -->
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
4.maven环境变量: vi .bash_profile

export JAVA_HOME=/aliyun/server/java

export JRE_HOME=/aliyun/server/java/jre

export CLASSPATH=/aliyun/server/java/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:.:$CLASSPATH

export PATH=/aliyun/server/mysql/bin:/dashu/software/apache-maven-3.39/bin:/aliyun/server/nginx/sbin:$JAVA_HOME/bin:$PATH

5.maven执行测试:

maven clean test

6.Jenkins配置:

安装TestNG插件

git:http://192.168.5.252/testgroup/risk-dataclean-test.git

Shell:

export JAVA_HOME=/aliyun/server/java
export JRE_HOME=/aliyun/server/java/jre
export CLASSPATH=/aliyun/server/java/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:.:$CLASSPATH
export PATH=/aliyun/server/mysql/bin:/dashu/software/apache-maven-3.39/bin:/aliyun/server/nginx/sbin:$JAVA_HOME/bin:$PATH
mvn clean test

TestNG Report:

**/testng-results.xml

7.html报告文件:

												

TestNG+Jenkins+Maven参数化测试dubbo接口的更多相关文章

  1. jmeter测试dubbo接口

    本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...

  2. jmeter5.1测试dubbo接口

    dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...

  3. Jmeter分布式测试dubbo接口2

    上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试. 在上次的例子中,我们只是实现了简单的dubbo ...

  4. Jmeter分布式测试dubbo接口1

    最近工作中接到一个需求,需要对一个Dubbo接口进行压力测试,测试其性能,之前一直使用jmeter做压力测试,在踏了好多坑之后,决定把这些记录下来,顺便也希望能帮助到大家. 开始测试之前,我们需要先知 ...

  5. jmeter4.0测试dubbo接口遇到的问题:An error occurred: org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    半年前,用jmeter4.0测试dubbo接口的时候,遇到这样一个问题 An error occurred: org.springframework.scheduling.quartz.CronTri ...

  6. 『动善时』JMeter基础 — 52、使用JMeter测试Dubbo接口

    目录 1.Dubbo介绍 2.准备测试Dubbo接口的环境 3.Dubbo Sample界面详解 4.Dubbo Sample组件的使用 (1)测试计划内包含的元件 (2)使用zookeeper协议请 ...

  7. JMeter测试dubbo接口总结

    Jmeter 测试dubbo 接口 1. 安装JMeter 安装到/usr/local下 2. github上下载 jmeter-plugins-dubbo-x.x.x-jar-with-depend ...

  8. 使用Jmeter测试Dubbo接口(参数设置篇)

    WebSocket接口需要下载dubbo插件才能使用 本次下载的版本为jmeter-plugins-dubbo-1.3.6,下载完成后jar文件放到\lib\ext目录下 由于工作需要,最近需要对du ...

  9. python、java大作战,python测试dubbo接口

    很多小伙伴都反映公司要求测dubbo(dubbo是一个java的分布式开源框架)接口,不会写java代码,怎么测,能不能用python来调dubbo接口.当然是可以的了,最近研究了一下,很简单,分享给 ...

随机推荐

  1. 编译opencv2.4.11时出现错误:error: ‘NppiGraphcutState’ has not been declared

    安装cuda之后再安装opencv时出现错误: /data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:120:54: error: ‘NppiGraphc ...

  2. [ Openstack ] Openstack-Mitaka 高可用之 启动一个实例

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  3. 【 Linux 】三大主流软件负载均衡器对比(LVS、Nginx、HAproxy)

    三大主流软件负载均衡器对比(LVS.Nginx.HAproxy) (资料来自网络,做了部分的补充说明) LVS:    1. 抗负载能力强,性能高,能达到F5的60%,对内存和CPU资源消耗比较低   ...

  4. SpringMVC框架入门配置 IDEA下搭建Maven项目(zz)

    SpringMVC框架入门配置 IDEA下搭建Maven项目 这个不错哦 http://www.cnblogs.com/qixiaoyizhan/p/5819392.html

  5. python与鸭子类型

    部分参考来源:作者:JasonDing  https://www.jianshu.com/p/650485b78d11##s1 首先介绍下面向对象(OOP)的三大特征: (1)面向对象程序设计有三大特 ...

  6. Android sdk manager更新 下载API源码

    方法一:在C:\Windows\System32\drivers\etc路径下的hosts文件中加入如下代码即可更新 203.208.46.146 www.google.com74.125.113.1 ...

  7. Java写到.txt文件,如何实现换行

    http://blog.csdn.net/liangoo7/article/details/7882773 java中写.txt文件,实现换行的几种方法: 1.使用java中的转义符"\r\ ...

  8. ASP.NET MVC中DropDownList的使用

    Asp.net MVC中的DropDownLists貌似会让一开始从Asp.net Forms转过来的程序员造成不少迷惑.这篇文章讲述了为了使用DropDownLists,你需要在Asp.Net MV ...

  9. 简单的curl抓取数据

    工欲善其事,必先利其器,数据抓取同样也是如此,PHP数据抓取常用CURL. CURL是一个使用libcurl库与各类服务器进行通讯,支持很多协议,如HTTP.FTP.TELNET等. curl_ini ...

  10. 使用Bot Service创建Bot Framework

    创建Bot Service:进入至Azure控制台中,新建Bot Service,如不知道Bot Service在哪个选项中,可以先查找Bot Service再创建 在弹出的查询结果中,选择Bot S ...