Webservice通过代码进行单元测试的三种方式,你使用哪种?

您所在的位置:网站首页 代码动态测试 Webservice通过代码进行单元测试的三种方式,你使用哪种?

Webservice通过代码进行单元测试的三种方式,你使用哪种?

#Webservice通过代码进行单元测试的三种方式,你使用哪种?| 来源: 网络整理| 查看: 265

Webservice通过代码进行单元测试的三种方式,你使用哪种? 原创

起码有故事 2021-08-16 20:23:28 博主文章分类:自动化测试 ©著作权

文章标签 测试工程师 压力测试 软件测试 单元测试 python 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者起码有故事的原创作品,请联系作者获取转载授权,否则将追究法律责任 一、基于代理类工厂

核心代码很简单,如下所示(这个比较普遍常用):

try {    // 接口地址(写webservice的地址)    String address = "http://127.0.0.1:9090/cxf/user?wsdl";    // 代理工厂    JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();    // 设置代理地址    jaxWsProxyFactoryBean.setAddress(address);    // 设置接口类型    jaxWsProxyFactoryBean.setServiceClass(UserService.class);    // 创建一个代理接口实现    UserService userService = (UserService) jaxWsProxyFactoryBean.create();    return userService.addUser(email, username, password);    } catch (Exception e) {    e.printStackTrace();    return -1;    } 二、动态调用 // 创建动态客户端   JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();   //接口地址   Client client = dcf.createClient("http://127.0.0.1/cxf/user?wsdl");   // 需要密码的情况需要加上用户名和密码   // client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME, PASS_WORD));   Object[] objects = new Object[0];   try {    // invoke("方法名",参数1,参数2,参数3....);    objects = client.invoke("getUserName", "maple");    System.out.println("返回数据:" + objects[0]);   } catch (java.lang.Exception e) {    e.printStackTrace();   } 三、通过Controller调用

具体的代码例子如下:

  ackage com.blog.cxf.client.controller;   import com.blog.cxf.server.dto.UserReqDto;   import com.blog.cxf.server.service.UserService;   import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;   import org.springframework.web.bind.annotation.*;   /**    * @description:    * @author: youcong    * @time: 2020/10/24 23:37    */   @RestController   @RequestMapping("/user")   public class UserApiController {    @PostMapping("/add")    public int add(@RequestParam String email, @RequestParam String username, @RequestParam String password) {    try {    // 接口地址    String address = "http://127.0.0.1:9090/cxf/user?wsdl";    // 代理工厂    JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();    // 设置代理地址    jaxWsProxyFactoryBean.setAddress(address);    // 设置接口类型    jaxWsProxyFactoryBean.setServiceClass(UserService.class);    // 创建一个代理接口实现    UserService userService = (UserService) jaxWsProxyFactoryBean.create();    return userService.addUser(email, username, password);    } catch (Exception e) {    e.printStackTrace();    return -1;    }    }   }

至于其它服务调用,可以通过Feign,也可以基于HtppClient。

至于上面三种哪种更好,具体看实际业务场景而定。可以根据自己的需求来选择。

如果你

①从事功能测试,想进阶自动化测试

②在测试界混了1、2年,依然不会敲代码

③面试大厂却屡屡碰壁

我邀你进群吧!来吧~~测试员,313782132(Q群里有技术大牛一起交流分享,学习资源的价值取决于你的行动,莫做“收藏家”)获取更多大厂技术、面试资料

收藏 评论 分享 举报

上一篇:看完大牛这篇文章,再遇到服务器反映慢的情况就不怕了

下一篇:学会代码不是测试的终点而是测试开发的起点



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3