作为集成测试的一部分,接口测试通过直接调用被测接口来判断系统在功能性、可靠性、安全性、性能等方面是否达到预期。在某些情况下,是功能测试无法覆盖,所以接口测试是非常必要的。接口测试有两种,一种是webservice接口,使用soap协议通过http传输,请求报文和返回报文都是xml格式,测试时使用工具soapUI进行测试。使用相对较少;另一种httpapi接口使用http传输协议,通过路径来区分调用方法,最常用的是get和post请求。 get请求和post请求有什么区别?网上的答案是: 1。get请求可以在浏览器中请求,post请求的测试需要借助工具 2。get请求使用url和cookie传递参数,post数据放在body 3.post比get更安全,因为传递的参数在url上是看不到的 4。get请求的url会被限制,post请求的数据可能会很大 5。一般get请求是获取数据,post请求是传递数据 其实对于现在互联网飞速发展的情况,上面的说法已经不严谨了。首先,post请求的参数也可以写在url中,但这种情况很少见;其次,貌似post使用body传参,比geturl传参安全,但其实只要抓包工具(fiddler,Charles等),post的参数也一目了然;再次,现在的浏览器已经很强大了,可以输入和支持很长的网址,所以不再有限制了。这样一来,在所有的差异中,只有最后一个是最根本的。 如何测试接口?依据什么来衡量呢?这就需要开发提供的接口文档,接口文档的功能和功能测试的需求说明书是一样的。包括:接口说明、调用url、请求方法(get或post)、请求参数、参数类型、请求参数说明、返回结果说明。这里的接口文件生成可以使用apipost接口文件生成工具。有了接口文档后,我们就可以设计用例了。一般的接口测试用例分为以下几类:1.通过性验证。说白了,就是传递正确的参数,返回正常的结果。有强制和非强制传输,参数的类型和长度,传递时可能存在的一些业务限制。因此,在设计用例时,需要对这些情况进行排列组合,以保证能够覆盖到所有情况。3.接口安全,这个分几种情况: 1)绕过验证,比如提交订单时,传递商品价格参数时,修改商品价格取决于后台是否验证过。或者当我付款时,拿一个袋子并更改订单金额。如果我可以用更改后的金额支付,那么这个借口就有问题了。 2)绕过认证,也就是某项功能只有特殊权限的用户才能操作,那么我通过普通用户也能操作吗? 3)参数是否加密,这个涉及到一些账号安全,比如我们登录一些网站的时候,需要对我们的登录信息进行加密。如果我们的信息不加密,我们的信息就会暴露,这是非常有害的。 4)密码安全规则,设置密码时验证复杂度。4、根据业务逻辑设计用例用例设计完成后,用什么来测试接口?我们可以使用一些工具,比如apipost和jmeter。apipost的使用比较简单,可以在列表中选择请求方式,在输入框中输入网址,如果是get请求,直接点击send就可以看到返回的结果。 如果是post请求,会涉及到上传几个参数,添加请求头,权限校验,添加cookies。Apipost可以轻松实现 。另一个测试接口的工具是jmeter,它的用途非常广泛。它不仅可以测试接口的功能,还可以对接口进行性能测试。比如:压力测试,负载测试等。在jmeter中,需要创建一个线程组,如图:
