一、配置dubbo的Bean文件:

配置spring-dubbo.xml文件:

 <dubbo:reference interface="com.datatrees.basisdata.bankbill.service.BillService" id="billService" url="dubbo://121.43.177.8:20100" timeout="10000"/>

将dubbo配置文件引入上下文spring-context.xml:

<import resource="spring-dubbo.xml" />


二、定义基础类:

@ContextConfiguration(locations = {"classpath:/spring-context.xml"})
@Configuration
public class BaseTestNGTest extends AbstractTestNGSpringContextTests {
// protected TestContextManager testContextManager;
// @BeforeTest
// public void setUpContext() throws Exception {
// this.testContextManager = new TestContextManager(getClass());
// this.testContextManager.prepareTestInstance(this);
// }
} 二、创建测试类,集成基础类:
1.excel参数化管理测试数据
2.excel管理sql数据
package com.tree.autotest.testcase.BillService;

import com.datatrees.basisdata.bankbill.service.BillService;
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/2/14.
*/
public class TestGetUserEmailNameCount2 extends BaseTestNGTest {
@Autowired
private BillService billService; private boolean handleOk;
private String insertSql1,insertSql2;
private static String excel;
private static Map allCases;
private Integer operatorUserId;
private Integer exceptedvalue;
private TestCase testcase; @BeforeClass
public void init() throws SQLException,IOException {
//获取excel用例列表
excel = "src/main/resources/case/BillService/TestGetUserEmailNameCount.xlsx";
allCases = CommonUtil_2.getAllCases(excel);
//获取用户ID
testcase = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-1");
operatorUserId = Integer.valueOf(testcase.param1);
//获取SQL
insertSql1 = testcase.stepSql;
insertSql2 = CommonUtil_2.getTestCaseBean(allCases, "case1", "case1-2").stepSql;
//删除,添加数据
handleOk &= deleteData(operatorUserId);
handleOk &= ManagedSqlUtil.insertBySql(insertSql1, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.insertBySql(insertSql2, DBIdConstant.MySql_Basisdata_ID);
System.out.println("setUp方法执行"); } @DataProvider(name = "testdata")
public Object[][] dataprovide()throws IOException{
System.out.println("dataprovide方法执行");
// return new Object[][]{{2000020013,2},{2001000138,0},{2001000139,2}};
Object[][] testData =ExcelHandle.readXlsx(excel, "工作表2");
return testData;
} @Test(dataProvider="testdata")
public void test_case_1(HashMap<String, String> map) throws Exception { operatorUserId=Integer.valueOf(map.get("userId"));
exceptedvalue =Integer.valueOf(map.get("excepted")); //++++++++++++++实际值+++++++++++++
Integer actual_value =
billService.getUserEmailNameCount(operatorUserId); //预期值
// Integer excepted_value =get_excepted_value(operatorUserId);
//++++++++++++++验证+++++++++++++
Assert.assertEquals(actual_value,exceptedvalue); } @AfterClass
public void tearDown() { operatorUserId = Integer.valueOf(testcase.param1);
deleteData(operatorUserId);
System.out.println("tearDown方法执行");
} //定义数据清理
public boolean deleteData(Integer userId) {
String deleteSql1 = "delete from t_bill where UserId="+userId+";";
String deleteSql2 ="delete from t_user_email where userid="+userId+";";
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql1, DBIdConstant.MySql_Basisdata_ID);
handleOk &= ManagedSqlUtil.deleteBySql(deleteSql2, DBIdConstant.MySql_Basisdata_ID); return handleOk;
}
public Integer get_excepted_value(Integer userId) throws SQLException{
String searchSql="select count(distinct(NameOnCard)) from t_bill where EmailId in (select distinct(EmailId) from t_user_email where UserId="+userId+")" +
" and NameOnCard != '';";
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.get(0);
}
} 四、测试数据文件:
1.准备数据表格

2.测试执行参数表格:

表格:工作表2 中保存测试执行参数数据

五:运行结果:

出现:

												

TestNG参数化测试Spring应用Dubbo接口的更多相关文章

  1. Junit参数化测试Spring应用Dubbo接口

    一.创建基础类. package com.tree.autotest; import org.junit.Before;import org.springframework.context.annot ...

  2. testng入门教程10 TestNG参数化测试

    在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...

  3. Junit测试Spring应用Dubbo测试框架之-Excel 工具类

    package com.tree.autotest.demo; import com.alibaba.fastjson.JSON;import org.apache.poi.hssf.usermode ...

  4. TestNG参数化测试

    参数化有两种方法: 第一种:在xml文件中声明 第二种:用@DataProvider注解 先介绍第一种方法: ParameterTest类:用@Parameters({"name" ...

  5. TestNG参数化测试【转】

    原文:http://www.yiibai.com/testng/20130916303.html 在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大 ...

  6. TestNG参数化测试-数据提供程序 @DataProvider方式

    在 testng.xml 中指定参数可能会有如下的不足: 1.如果你压根不用 testng.xml. 2.你需要传递复杂的参数,或者从Java中创建参数(复杂对象,对象从属性文件或者数据库中读取的et ...

  7. TestNG+Jenkins+Maven参数化测试dubbo接口

    1.TestNG参数化测试用例: package com.tree.autotest.testcase.IUserBankSummaryService; import com.datatrees.fi ...

  8. jmeter测试dubbo接口

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

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

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

随机推荐

  1. Nmap误报1720端口开放的原因

    在使用Nmap扫描服务器开放端口(全连接扫描)时,一直会发现误报1720端口开放,telnet也有时会连接成功.而实际上服务器并未开启此端口.经过查阅资料,确定原因如下: H.323协议在负载中放入了 ...

  2. (1)go 环境搭建

    1 .下载安装 https://golang.org/ 2.环境变量配置 安装后会自动配置三个环境变量 (1) GOROOT: (2) PATH: (3) GOPATH GOPATH 从1.8开始,w ...

  3. 循序渐进PYTHON3(十三) --4-- DJANGO之CSRF使用

    用 django 有多久,跟 csrf 这个概念打交道就有久. 每次初始化一个项目时都能看到 django.middleware.csrf.CsrfViewMiddleware 这个中间件 每次在模板 ...

  4. Ghostscript 中 ps2pdf 命令在 windows msys 下的运行错误问题。

    前两天看到了 miloyip/game-programmer 这个项目觉得特别有用,真是好东西,明确了指出了学习路线,尤其是新手.不过打开看,有些书对应的亚马逊链接是无效的,比如<Tricks ...

  5. 洛谷——P1609 最小回文数

    题目描述 回文数是从左向右读和从右向左读结果一样的数字串. 例如:121.44 和3是回文数,175和36不是. 对于一个给定的N,请你寻找一个回文数P,满足P>N. 满足这样条件的回文数很多, ...

  6. FZOJ 2245 动态树(离散+离线+ 树状数组)

    Problem 2245 动态树 Accept: 17    Submit: 82Time Limit: 3000 mSec    Memory Limit : 65536 KB  Problem D ...

  7. Memory Allocation with COBOL

    Generally, the use of a table/array (Static Memory) is most common in COBOL modules in an applicatio ...

  8. 利用FusionCharts制作统计报表

    今天在开发中需要用到统计报表,于是就查找了一下FusionCharts的用法,下面来总结一下利用FusionCharts怎么制作统计报表 1.建表 首先要建立所要统计报表的表,表的字段越多,统计的维度 ...

  9. [Codeforces 1053B] Vasya and Good Sequences

    Link: Codeforces 1053B 传送门 Solution: 其实就是暴力 观察需要满足的条件: 1.个数和为偶数 2.最大个数不大于其它所有个数的和 如果只有第一个条件记录前缀和的奇偶性 ...

  10. 【动态规划】POJ1661 Help Jimmy

    Help Jimmy Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11621   Accepted: 3827 Descr ...