invoke注入参数调用dubbo接口
最近我们同事写了一个自动化测试工具,通过maven将系统的jar包下载下来之后,通过反射的方法就可以获取到该系统对外暴露的接口,通过传参就可以很轻易的获取到dubbo接口啦。
这里有两个难点(对我来说),1、是如何自动从远程仓库下载包,而不是程序内部添加pom文件;2、是如何动态获取对外暴露的接口。
第一点应该容易解决,我百度一下如何动态更新pom文件。
第二点如何解决:
通常我们配置一个接口,是要在xml配置,要研发告知我们接口在哪里。比如这样,配置到xml文件中。
但是作为一个系统,对用户来说内部实现是黑盒的。每次调用接口的时候去问开发是不正常的,所以我们可以通过部署信息,知道应用部署在哪台机器,然后登陆该机器。通过invoke 反射方法获取到暴露的接口信息。
1、ps -ef | grep "xx" 找到dubbo端口号
2、telnet 10.16.244.42 18010 远程登陆服务的标准协议和主要方式。提供了在本地计算机完成远程主机的能力。在本地输入命令和在远程计算机中输入命令效果一样。
按 ctrl +] 进入 tel命令行,telnet命令行的作用。
这个时候,我们应该按”enter“回车键,进入dubbo命令行。然后,ls命令出现暴露的接口。ls xx.xx.xx接口名,出现接口具体的方法。
ls
3、对具体的方法,invoke xx.xx.service.method(参数1,参数2),就会返回结果。