如何在Java中使用rest assured对接口进行测试?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
假设你写了一个接口:lotto,访问路径是: http://localhost:8080/lotto
接口返回值:
{ "lotto":{ "lottoId":5, "winning-numbers":[2,45,34,23,7,5,3], "winners":[{ "winnerId":23, "numbers":[2,45,34,23,3,5] },{ "winnerId":54, "numbers":[52,3,12,11,18,22] }] } }
如何快速的验证接口是否返回正常值呢?
get("/lotto").then().body("lotto.winners.winnerId", hasItems(23, 54));
使用简单吧!
引入
不多说,直接maven的方式引入:注意,我直接按照默认的scope引入的,不是test;
主要引入以下2个依赖,原因如下:
rest-assured: 主要测试基本的http的rest风格接口,这个是最基础的依赖;
json-path: 主流的接口主要返回json,对接口进行测试用例测试,主要也是判断json返回某路径下的数据;
<dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>io.rest-assured</groupId> <artifactId>json-path</artifactId> <version>4.2.0</version> </dependency>
然后你就可以愉快的编写测试用例,然后使用rest-assured进行接口测试了。
使用要点
先上简单代码吧!
先准备测试数据:
final TestCaseDataModel<LoginRestReq> testCaseDataModel = new TestCaseDataModel<>(); final LoginRestReq loginRestReq = LoginRestReq.builder() .appId("2a6bf452219cfe44c7f78231e3c80a13072b6727") .nonce("123456") .timestamp(System.currentTimeMillis()) .userId("lxlifuchun") .userName("李福春") .build(); String appSecret = "91e47f584dae551170ade272b2c7a69f"; loginRestReq.setChecksum(SignUtils.generateCheckSum(loginRestReq.getAppId(), appSecret, loginRestReq.getTimestamp(), loginRestReq.getNonce())); testCaseDataModel.setInputParam(loginRestReq); ExpectModel expectModel = new ExpectModel(); expectModel.setPath("data.id"); expectModel.setMatcher(Matchers.lessThan(0)); testCaseDataModel.setExpectResult(Arrays.asList(expectModel));
RestAssured.baseURI = "https://rest-beta.xxx.com"; final ValidatableResponse validatableResponse = given().contentType(ContentType.JSON) .header("requestId", UUID.randomUUID().toString()) .body(testCaseData.getInputParam()). post("/user_service/user/login") .then().contentType(ContentType.JSON); for (Object obj : testCaseData.getExpectResult()) { ExpectModel item = (ExpectModel) obj; validatableResponse.body(item.getPath(), item.getMatcher()); }
做的事情很简单,就是拿一个登录接口来实际的试一下:
login接口接受一个json的参数,LoginRestReq对下转换之后得到;
然后返回数据,数据中有一个用户id,路径是 data.id,如果id大于0,标识登录操作成功,登录接口正常。
关于如何在Java中使用rest assured对接口进行测试问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联网站建设公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:如何在Java中使用restassured对接口进行测试-创新互联
本文链接:https://www.cdcxhl.com/article12/hesgc.html
成都网站建设公司_创新互联,为您提供企业建站、响应式网站、标签优化、电子商务、域名注册、全网营销推广
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联