博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dubbo接口测试-查找店铺可领取的劵
阅读量:4571 次
发布时间:2019-06-08

本文共 15486 字,大约阅读时间需要 51 分钟。

查找店铺可领取的劵这个dubbo接口的Java脚本编辑,开发提供的内容:

1、具体的方法及参数

接口类:com.gome.coupon.interfaces.dubbo.IPromotionAndCouponManager

方法:queryAvailableDarwCoupons(String userId, Set<String> shopNo)

参数:参数1:"100021145163", 参数2:{"81012772","80007143"}

 2、服务消费配置

<dubbo:application name="npop_logistics_query" owner="dongchao" />

<dubbo:protocol name="dubbo" port="-1"/>

<dubbo:registry address="zookeeper://10.58.57.58:2181?backup=10.58.57.54:2181,10.58.57.48:2181" id="defaultZookeeperAddress" />

 

<dubbo:reference id="promotionAndCouponManager" interface="com.gome.coupon.interfaces.dubbo.IPromotionAndCouponManager" registry="defaultZookeeperAddress "  group="npop-coupon-front" check="false" timeout="6000"/>

<dubbo:reference id="couponAndBatchManager" interface="com.gome.coupon.interfaces.dubbo.ICouponAndBatchManager" registry="defaultZookeeperAddress " group="npop-coupon-front" check="false" timeout="6000"/>

3、服务引用Jar包

<dependency>

         <artifactId>promotion-interfaces</artifactId>

         <version>1.0.9-SNAPSHOT</version>

         <name>promotion-interfaces</name>

         <exclusions>

         <exclusion>

                   <groupId>*</groupId>

                   <artifactId>*</artifactId>

         </exclusion>

         </exclusions>

</dependency>

操作步骤:

1、spring-dubbo-consumer.xml

1 
2
9
10
11
12
13
14
15
16
17
18

 

2、pop.xml

1 
3
4.0.0
4
10 11
load.coo8.coupon
12
coo8.coupon
13
1.0-SNAPSHOT
14 15
16
UTF-8
17
UTF-8
18
4.1.0.RELEASE
19
20 21 22
23 24
25
com.gome.pop
26
pop-common
27
STABLE-1.0.18
28
29
30
com.101tec
31
zkclient
32
33
34
org.jboss.netty
35
netty
36
37
38
org.slf4j
39
jcl-over-slf4j
40
41
42
cglib
43
cglib
44
45
46
coupon-interfaces-simple
47
coupon-interfaces
48
49
50
51
52
com.gome.npop
53
promotion-interfaces
54
1.0.9-SNAPSHOT
55
56
57
*
58
*
59
60
61
62 63 64 65
66
67
org.springframework
68
spring-core
69
${spring.version}
70
71
72
org.springframework
73
spring-aop
74
${spring.version}
75
76
77
org.springframework
78
spring-beans
79
${spring.version}
80
81
82
org.springframework
83
spring-context
84
${spring.version}
85
86
87
org.springframework
88
spring-expression
89
${spring.version}
90
91
92
org.springframework
93
spring-tx
94
${spring.version}
95
96 97
98
99
com.github.sgroschupf
100
zkclient
101
0.1
102
103 104
105
org.apache.zookeeper
106
zookeeper
107
3.4.6
108
109 110
111
com.alibaba
112
dubbo
113
2.5.5.cat-SNAPSHOT
114
115
116
org.springframework
117
spring
118
119
120
org.glassfish.grizzly
121
grizzly-framework
122
123
124
125 126
127
128
org.slf4j
129
slf4j-api
130
1.6.1
131
132 133 134 135
136
137
junit
138
junit
139
4.10
140
test
141
142 143 144 145
146
junit
147
junit
148
3.8.1
149
test
150
151 152
153
154
com.alibaba
155
fastjson
156
1.2.6
157
158 159
160
161
org.apache.jmeter
162
ApacheJMeter_java
163
2.13
164
165
166
d-haven-managed-pool
167
d-haven-managed-pool
168
169 170
171
commons-math3
172
commons-math3
173
174 175
176
commons-pool2
177
commons-pool2
178
179 180
181
commons-collections
182
commons-collections
183
184
185
186
187
188 189
190 191
192
193
194
195
org.apache.maven.plugins
196
maven-compiler-plugin
197
2.4
198
199
1.5200
1.5
201
202
203
204
org.apache.maven.plugins
205
maven-shade-plugin
206
2.3
207
208
209
package
210
211
shade
212
213
214
215
216
*:*
217
218
META-INF/*.SF
219
META-INF/*.DSA
220
META-INF/*.RSA
221
222
223
224
225
226
META-INF/spring.handlers
227
228
229
META-INF/spring.schemas
230
231
232
233
234
235
236
237
238 239 240

 

打包时候四个注意点:

  a>以下的过滤不要忘记加

1 
2
3
org.apache.maven.plugins
4
maven-compiler-plugin
5
2.4
6
7
1.5 8
1.5
9
10
11
12
org.apache.maven.plugins
13
maven-shade-plugin
14
2.3
15
16
17
package
18
19
shade
20
21
22
23
24
*:*
25
26
META-INF/*.SF
27
META-INF/*.DSA
28
META-INF/*.RSA
29
30
31
32
33
34
META-INF/spring.handlers
35
36
37
META-INF/spring.schemas
38
39
40
41
42
43
44

  b>加上如下内容

1 
2
3
coupon-interfaces-simple
4
coupon-interfaces
5
6

  c>过滤以下包里面和依赖无关的其他所有文件

1    
2
com.gome.npop
3
promotion-interfaces
4
1.0.9-SNAPSHOT
5
6
7
*
8
*
9
10
11

  d>打包的时候注意将下面的注释放开,是jmeter里面的。

1 
2
provided

3、ContextGetBean.class

1 package com.gome.test.load; 2  3 import org.springframework.context.support.ClassPathXmlApplicationContext; 4  5 import java.lang.Object; 6 import java.lang.String; 7  8 public class ContextGetBean{ 9     //获取spring中定义的bean实例(对象),加载spring配置10     //通过ApplicationContext获取spring配置文件中的bean11     //要获取XML中配置的Bean,最关键的是获取org.springframework.context.ApplicationContext12     //获取 ApplicationContext 的方法如下13     private static ClassPathXmlApplicationContext context =  new ClassPathXmlApplicationContext(new String[]{"classpath:spring-dubbo-consumer.xml"});14 //"包名(或者是包的完整路径)/配置文件名字(也就是xml文件)");15     //ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默认从类路径加载配置文件,后者默认从文件系统中装载配置文件16     public  static void ContextGetBean()17     {18         context.start();19     }20 21     public static Object getBean(String classpath, String beanName) {22         return context.getBean(beanName);23         //context.getBean("配置文件中定义的bean实例") 获得 bean 实例。24     }25 }

 

4、QueryCoupons.class

1 package com.gome.test.load;  2   3 import com.gome.coupon.interfaces.dubbo.IPromotionAndCouponManager;  4 import com.gome.coupon.model.cartBean.CommitCouponsAndPromotionParam;  5 import com.gome.coupon.model.cartBean.CouponBatchResult;  6 import com.gome.coupon.model.cartBean.ResultDO;  7 import com.googlecode.mp4parser.authoring.Sample;  8 import org.apache.jmeter.config.Arguments;  9 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 10 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 11 import org.apache.jmeter.samplers.SampleResult; 12  13 import java.util.*; 14  15 /** 16  * Created by zhaichao on 2017/6/15. 17  */ 18 public class QueryCoupons extends AbstractJavaSamplerClient { 19     private IPromotionAndCouponManager iPromotionAndCouponManager; 20     //IPromotionAndCouponManager这个类是定义要测试的接口的类,类+名称 21     private Arguments params; 22     //定义这个接口所需要传的参数 23     public void setupTest(JavaSamplerContext args){ 24         iPromotionAndCouponManager=(IPromotionAndCouponManager)ContextGetBean.getBean("classpath:spring-dubbo-consumer.xml", "promotionAndCouponManager"); 25     //setupTest类用于实现测试前置,连接那些服务器,调用那些方法等 26     //IPromotionAndCouponManager是被测接口所在的类, 27     //getBean(文件名称,暴露的接口的id) 因为可以配置很多接口,所以需要id来区分要使用哪个 28     } 29     public Arguments getDefaultParameters(){ 30         //getDefaultParameterslei类用于从外部( Jmeter界面)获取参数 31         this.params = new Arguments(); 32         this.params.addArgument("userId","100021145163"); 33         this.params.addArgument("shopNo","\"81012772\",\"80007143\""); 34         //这里的shopNo是Set
类型的,但是可以定义成字符串类型,然后下面进行转化 35 return params; 36 } 37 // public void setParam(JavaSamplerContext args){ 38 // 39 // } 40 public SampleResult runTest(JavaSamplerContext args) 41 { 42 //runTest类为调用测试接口方法部分,使用传递进来的参数 43 String userId = args.getParameter("userId", "100021145163"); 44 String shopNo = args.getParameter("shopNo"); 45 shopNo=shopNo.replaceAll("\"",""); 46 //首先把shopNo值里面的\"用空格替换 47 String[] shopNoLi=shopNo.split(","); 48 //创建一个数组 49 Set
setShopNo= new HashSet
(); 50 //set本身是接口,所以需要实现,可以如上定义: 51 for(int i=0;i
>> rd = iPromotionAndCouponManager.queryAvailableDarwCoupons(userId, setShopNo); 56 //调用iPromotionAndCouponManager类中的方法queryAvailableDarwCoupons 57 SampleResult sr = new SampleResult(); 58 sr.sampleStart(); 59 try{ 60 if(rd != null && rd.isSuccess()==true){ 61 this.getLogger().info("一切正常"); 62 sr.setSuccessful(true); 63 }else{ 64 this.getLogger().info(rd.getErrorMsg()); 65 this.getLogger().info("没有抛异常啊!"+"dafdsaf"); 66 sr.setSuccessful(false); 67 } 68 }catch (Exception e){ 69 sr.setSuccessful(false); 70 e.getStackTrace(); 71 this.getLogger().error("抛出异常如下:"+e); 72 } 73 sr.sampleEnd(); 74 return sr; 75 } 76 public void teardownTest(JavaSamplerContext args){ 77 //teardownTest类用于调用接口完成之后的收尾工作,输出调用服务处理时间,释放相关资源等 78 } 79 /** 80 在java中,main()方法是java应用程序的入口方法。 81 java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载。 82 如果没有装载,那么就装载该类,并且装载所有相关的其他类。 83 因此程序在运行的时候,第一个执行的方法就是main()方法。 84 通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象, 85 然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象, 86 因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。 87 */ 88 public static void main(String[] args){ 89 QueryCoupons querycoupons = new QueryCoupons(); 90 //new一个对象 91 Arguments param = querycoupons.getDefaultParameters(); 92 //获取参数 93 JavaSamplerContext javaSamplerContext = new JavaSamplerContext(param); 94 querycoupons.setupTest(javaSamplerContext); 95 SampleResult result = querycoupons.runTest(javaSamplerContext); 96 querycoupons.teardownTest(javaSamplerContext); 97 } 98 99 100 }

 

 

 

 

 

转载于:https://www.cnblogs.com/zhaic/articles/7048926.html

你可能感兴趣的文章
CF277D Google Code Jam
查看>>
(七)unittest单元测试框架
查看>>
(八) 自动化测试的实例(以浏览器为例)
查看>>
js获取单选框和复选框的值并判断值存在后允许转跳
查看>>
《基于MVC的javascript web富应用开发》中的一些函数
查看>>
0014---简单的计算
查看>>
自己写的文字轮播(简陋版)
查看>>
python入门笔记1
查看>>
HTTP协议分析及攻防方法
查看>>
编程我们学到了什么?
查看>>
面向过程和面向对象的对比(转)
查看>>
206. 反转链表
查看>>
622. 设计循环队列
查看>>
MCMC 、抽样算法与软件实现
查看>>
JavaScipt30(第七个案例)(主要知识点:数组some,every,findIndex方法)
查看>>
Android 采用HttpClient提交数据到服务器
查看>>
EL表达式概述
查看>>
word中批量修改图片大小
查看>>
Ext4 中 日期和时间的控件
查看>>
最长子序列问题
查看>>