美文网首页
Alamofire-UT测试Api

Alamofire-UT测试Api

作者: Zip_Wang | 来源:发表于2018-02-02 10:37 被阅读20次

最近两天更新ES6学习文集,因为在搞Swift的UT测试。大致要实现的内容如下:

因为App在调用Api的时候,其实会出现一些错误,这些错误可能是网络原因,也可能是服务器问题,所以这就需要App来模拟这些错误的出现,从而达到测试的目的。但是这又不能过分依赖于后端,因为后端不可能配合你去修改服务器,而让你去测试,所以这就需要App本地模拟这些网络问题。

然后有因为App使用的是Alamofire来实现的Http请求,所以花了点时间来实现这个基础Alamofire的Api测试。


具体实现的逻辑主要是使用了URLProtocol,这个协议会拦截你App中的所有请求,有一些webview页面的缓存也是基于这个协议来实现的。具体的可以看代码:

这个段代码是我对Alamofire的一个封装类的一部分,主要是通过设置SessionManager来实现Alamofire请求。

第18行代码是用来判断当前是否是测试环境,如果是跑UT那么这个判断则是true。

第24~28行代码就创建了一个URLSessionConfiguration,里面注册了我们自己的URLProtocol,CustomHttpProtocol就继承了URLProtocol。一旦注册了我们自己的URLProtocol,每一次请求就会被我们的CustomHttpProtocol拦截,这样我们就可以做自己的事情了。


CustomHttpProtocol继承自URLProtocol,URLProtocol这个类怎么用,可以在网上搜,主要是要实现几个方法。来拦截请求,例如,你可以统一的加Header信息在Request里面等等,然后再来发送请求,因为我们是要模拟网络错误,所以我们这里没有发送实际的网络请求,而是根据请求的url和需要的错误类型,将相应的错误信息直接返回Response。如下面的代码:

第84行代码通过请求的url来获取请求参数(注意这里有一个坑,就是URLProtocol并不能获取到request请求的Body里面的参数,这是由于苹果认为参数可能很大,所以它就不返回给你了,导致你要想一个办法来获取到相应的参数,我这里是使用url作为key来保存到一个Map里面来获取的)

第86行代码我就是根据具体参数来mock相应的返回值给Response,例如,某个参数为空了,或者错误了,那么我就会返回服务器应该相应的Response给前端,这样就可以不用访问具体的服务器,App内部就可以模拟这种网络请求和错误。


通过这种方式可以本地App内部自己模拟这种网络错误,二不依赖于服务器,这样就可以在开发和测试的时候,处理各种错误从而降低代码的出错率和奔溃率。

而且这种方式也可以更好的写UT代码,而不用修改正常业务的处理逻辑,只需要修改底层Api请求的代码就可以了。

相关文章

  • Alamofire-UT测试Api

    最近两天更新ES6学习文集,因为在搞Swift的UT测试。大致要实现的内容如下: 因为App在调用Api的时候,其...

  • API测试系列(目录)

    API测试系列(1) 为什么API很重要?| API测试现状 API测试系列(2) API测试的特别之处

  • API自动化测试与持续集成

    目的 如何使用SuperTest测试框架,进行API测试 如何将API测试与构建工具结合 如何将API测试、构建工...

  • 使用Eolinker进行API测试

    页面入口 进入 API 文档详情页,点击上方 测试 标签,进入 API 测试页,系统会根据API文档自动生成测试界...

  • 腾讯优测简述API测试的类型

    腾讯优测分享API测试类型 API测试通常涉及以下实践: · 单元测试: 测试单个操作的功能 · 功能测试: 通过...

  • 常用API测试工具

    API测试基本步骤 1、准备测试数据(这是可选步骤,不一定所有 API 测试都需要这一步);2、通过 API 测试...

  • 初级测试工程师-接口测试-面试笔试题

    初级测试工程师接口测试面试笔试题:1、什么是API接口?2、什么是API测试?3、常见的API测试类型有哪些?4、...

  • API自动化测试平台,自动回归测试

    API自动化测试平台可以解决传统API开发过程中面临测试效率不高、回归测试工作量大、不同团队使用不同的API测试工...

  • Postman 接口测试入门教程

    一、Postman可以做什么? Postman 可以做API测试,不仅开发可以使用测试API是否可用。测试人员可以...

  • 免费API测试工具TOP5

    从2018软件测试趋势报告来看,API测试和API测试的自动化需求不断的增加,API对于一个成功软件项目的信息传输...

网友评论

      本文标题:Alamofire-UT测试Api

      本文链接:https://www.haomeiwen.com/subject/qyyszxtx.html