如何实现rest API的自动化测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现rest API的自动化测试相关的知识,希望对你有一定的参考价值。

参考技术A

  核心就一个测试类HTTPReqGenTest.java 由四部分组成:

     @BeforeTest  读取Excel (WorkBook) 的 ‘Input’ 和 ‘Baseline’ sheet

  并且新建‘Output’, ‘Comparison’, ‘Result’ 三个空sheet。读取http_request_template.txt 内容转成string

        @DataProvider (name = "WorkBookData")

  TestNG的DataProvider, 首先用DataReader构造函数,读取Excel中Input的数据,放入HashMap<String, RecordHandler>, Map的key值就是test case的ID,value是RecordHandler对象,此对象中一个重要的成员属性就是input sheet里面 column和value 的键值对,遍历Map将test case ID 与 test case的value 即input sheet前两列的值放入List<Object[]> ,最后返回List的迭代器iterator (为了循环调用@Test方法)

  

      @Test (dataProvider = "WorkBookData", description = "ReqGenTest")

  测试方法,由DataProvider提供数据,首先根据ID去取myInputData里的RecordHandler, 由它和template 去生成request, 然后执行request 返回response,这些工作都是由HTTPReqGen.java这个类完成的,借助com.jayway.restassured, 返回的response是一个JSON体,通过org.skyscreamer.jsonassert.JSONCompare 与Baseline中事先填好的期望结果(同样也是JSON格式)进行比较, 根据结果是Pass还是Fail, 都会相应的往Excel里的相应Sheet写结果。

      @AfterTest写入统计的一些数据关闭文件流

使用WisdomTool RESTClient自动化测试REST API,如何取消对返回的body内容的校验?

使用Wisdom RESTClient V1.1 自动化测试API,默认是对返回HTTP状态码和body内容进行校验的。

如果您的API返回body内容是变化的,可以通过设置来取消对body内容的校验。

选择History视图,在 AssertBody 列对需要取消校验的记录进行去除勾选。

以上是关于如何实现rest API的自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

使用WisdomTool RESTClient自动化测试REST API,如何取消对返回的body内容的校验?

如何使用 REST + CodeceptJS 测试 API,访问受 Auth0 保护?

如何选择API测试工具

硬核接口自动化测试 --- Rest Assured

Spring Boot REST API 自动化测试

WisdomTool REST Client支持自动化测试并可以生成API文档