zoukankan      html  css  js  c++  java
  • dubbo接口FindMemberInfoTest思路整合

    package com.yzb.user_center;

    /**
     * @Created by IntelliJ IDEA.
     * @Author tk
     * @Date 2018/7/31
     * @Time 11:43
     */

    import com.alibaba.fastjson.JSON;
    import com.xkx.service.base.ResponseResult;
    import com.xkx.service.usercenter.api.XkxMemberApi;
    import com.xkx.service.usercenter.request.data.XkxMemberQueryRequest;
    import com.xkx.service.usercenter.response.XkxMemberResponse;
    import org.apache.jmeter.config.Arguments;
    import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    import org.apache.jmeter.samplers.SampleResult;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;



    public class FindMemberInfoTest extends AbstractJavaSamplerClient {
        private SampleResult results;
        private final String configLocation = "classpath:aplication-context.xml";
        private ApplicationContext appContext = null;
        private XkxMemberApi xkxMemberApi;
        private String memberIds;
        private String source;

        public Arguments getDefaultParameters() {
            Arguments args = new Arguments();
            args.addArgument("memberIds", "1065111");
            args.addArgument("source","13605245");

            return args;
        }
        //调用服务并获取接口对象
        public void setupTest(JavaSamplerContext context) {
            appContext = new ClassPathXmlApplicationContext(configLocation);
            xkxMemberApi = appContext.getBean("xkxMemberApi", XkxMemberApi.class);    }

        public SampleResult runTest(JavaSamplerContext context) {
            results = new SampleResult();
            memberIds=context.getParameter("memberIds", memberIds);
            source = context.getParameter("source",source);

            //方法
            XkxMemberQueryRequest  memberRequest= new  XkxMemberQueryRequest();
            memberRequest.setIsFilter(0);
            //获取memberIds是个list
            List<String> memberIds = new ArrayList<String>();

            memberRequest.setMemberIds(memberIds);
            memberRequest.setIsFilter(1);
            memberRequest.setSource(source);


            results.sampleStart();
            //对象关联方法,方法传入参数,用fiResp接受
            //xkxMemberApi对象,findMemberInfo方法,XkxMemberQueryRequest参数(分为:memberIds(list),isFilter(int整形),source
            ResponseResult<Map<String,XkxMemberResponse>> fiResp = xkxMemberApi.findMemberInfo(memberRequest);
            results.sampleEnd();

            Integer result = fiResp.getResult() == null ? 0 : fiResp.getResult();
            System.out.println("result***"+JSON.toJSONString(fiResp));
            results.setSuccessful(result.equals(1));

            return results;
        }

        public void teardownTest(JavaSamplerContext arg0) {
        }

        public static void main(String[] args) {
            Arguments argu = new Arguments();
            JavaSamplerContext javaSamplerContex = new JavaSamplerContext(argu);
            FindMemberInfoTest maintest = new FindMemberInfoTest();
            maintest.setupTest(javaSamplerContex);
            maintest.runTest(javaSamplerContex);
        }

    }

    代码思路分析:
    
    1、关键的一句:ResponseResult<Map<String,XkxMemberResponse>> fiResp = xkxMemberApi.findMemberInfo(memberRequest);
    
    xkxMemberApi:对象
    
    findMemberInfo:方法
    
    memberRequest:参数
    
    2、XkxMemberQueryRequest memberRequest= new XkxMemberQueryRequest();
    
    XkxMemberQueryRequest:方法的类型,声明以后就需要对参数就行传值
    
    memberRequest.setMemberIds(memberIds);    传入参数 memberIds
    
    3、和jmeter关联的地方,也是整个脚本比较核心的逻辑关系
    
     
    
    args.addArgument("memberIds", "1065111");
    args.addArgument("source","13605245");
    
    memberIds=context.getParameter("memberIds", memberIds);
    source = context.getParameter("source",source);
    
    
    memberRequest.setMemberIds(memberIds);
    memberRequest.setIsFilter(1);
    memberRequest.setSource(source);
    
    这三段代码的关系是:
    1、jemter面板需要暴露出memberIds和source(即:需要传入的参数)
    2、第二段的代码用文本来接受jemter传入的参数
    3、第三段代码用方法的类型声明的变量接受memberIds和source并传入(即:memberRequest.setMemberIds(memberIds);)
    ----这样整体的参数就偶合起来了






  • 相关阅读:
    docker学习笔记1-- 用Toolbox安装Docker--介绍Docker Machine
    IDEA中文出现乱码解决
    hadoop本地运行与集群运行
    关于IDEA导出项目jar包/runnable jar
    IDEA 添加jar包的三种方式(重点:new uer Libraries)
    windows下客户端开发hdf--环境搭建
    junit在idea中的使用(1)--理论篇
    word的"bug"
    第4章 控制执行流程
    第3章 操作符
  • 原文地址:https://www.cnblogs.com/frankruby/p/9398262.html
Copyright © 2011-2022 走看看