TestNG参数化测试Spring应用Dubbo接口
一、配置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接口的更多相关文章
- Junit参数化测试Spring应用Dubbo接口
一.创建基础类. package com.tree.autotest; import org.junit.Before;import org.springframework.context.annot ...
- testng入门教程10 TestNG参数化测试
在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...
- Junit测试Spring应用Dubbo测试框架之-Excel 工具类
package com.tree.autotest.demo; import com.alibaba.fastjson.JSON;import org.apache.poi.hssf.usermode ...
- TestNG参数化测试
参数化有两种方法: 第一种:在xml文件中声明 第二种:用@DataProvider注解 先介绍第一种方法: ParameterTest类:用@Parameters({"name" ...
- TestNG参数化测试【转】
原文:http://www.yiibai.com/testng/20130916303.html 在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大 ...
- TestNG参数化测试-数据提供程序 @DataProvider方式
在 testng.xml 中指定参数可能会有如下的不足: 1.如果你压根不用 testng.xml. 2.你需要传递复杂的参数,或者从Java中创建参数(复杂对象,对象从属性文件或者数据库中读取的et ...
- TestNG+Jenkins+Maven参数化测试dubbo接口
1.TestNG参数化测试用例: package com.tree.autotest.testcase.IUserBankSummaryService; import com.datatrees.fi ...
- jmeter测试dubbo接口
本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...
- Jmeter分布式测试dubbo接口2
上次我们将dubbo接口与jmeter集成起来,但是jmeter是由java实现的,本身有很多限制,无法实现高并发,我们需要借助分布式来实现大压力测试. 在上次的例子中,我们只是实现了简单的dubbo ...
随机推荐
- SpringMVC完成文件上传的基本步骤
1.修改form表单的提交方式 2.将文件存入磁盘 3.配置视图解析器 1).前端文件 --需要在form表单中添加 enctype="multipart/form-data"属性 ...
- centos部署Django项目的前提工作
从安装python到django项目的部署上线.是相当详细了,中间也没有出现什么幺蛾子.很赞!!! https://blog.csdn.net/u011798443/article/details/8 ...
- Java空对象设计模式
有时候我们的代码中为避免 NullPointerException 会出现很多的对Null的判断语句,而这些语句一旦多起来,我们的代码就会变的惨不忍睹,因此我们引入了空对象模式(null object ...
- POJ 1089 Intervals【合并n个区间/贪心】
There is given the series of n closed intervals [ai; bi], where i=1,2,...,n. The sum of those interv ...
- 【BZOJ 3672】 3672: [Noi2014]购票 (CDQ分治+点分治+斜率优化)**
3672: [Noi2014]购票 Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国 ...
- Hive 默认分区
在hive里面表可以创建成分区表,但是当分区字段的值是'' 或者 null时 hive会自动将分区命名为默认分区名称. 默认情况下,默认分区的名称为__HIVE_DEFAULT_PARTITION__ ...
- [TCO2013]TrickyInequality
$\newcommand{stirf}[2]{{{#1}\brack{#2}}}$$\newcommand{stirs}[2]{{{#1}\brace{#2}}}$题意:$\sum\limits_{i ...
- 【点分治】Osipovsky Cup 2014 Kovrov, Sunday, December 21, 2014 Problem A. Attack and Defence
题意:给你一棵树,每个点有一个左括号或者右括号,问你树上能够完美匹配的路径数量(l->r,r->l 视作不同路径). 点分治可以使用“不扣去重复答案”的写法,只不过,要先将每个点的子树按照 ...
- 泛型类Bag
课堂练习--泛型类Bag 要求: 0.代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息 1.参见Bag的UML图,用Java继承BagInterface实现泛型类Bag,并 ...
- 2016. 4.10 NOI codevs 动态规划练习
1.codevs1040 统计单词个数 1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 De ...