后端程序员之路 30、webapi测试工具的一点想法
有了webapi,对应的,也就要有各种语言的sdk,有时候,还要有一个好用的api测试工具。sdk和api测试工具在功能上有一些异同,有时候测试工具会直接基于sdk来制作。
它们通常包含:
1、http通信底层功能封装
有些语言或系统,本身http的库不够好,所以会用一些第三方库。c++一般用curl,java(android)可能用Volley。在这之上,通常再封装出一个HttpClient,提供同步异步的GET和POST功能。
2、OAuth功能
有些帐号关联的sdk,会提供OAuth的封装。
3、api相关逻辑
通常包括api的URI、Model、Serialization,可能还包含一些常量表,譬如错误码转换文本等。
4、业务逻辑
有些功能,可能仅靠一个api调用是不能完成的,譬如在获取文章id列表需要再继续获取id对应文章内容。有时候sdk还会自己集成上报、界面等内容。
5、辅助功能
可能在调用某些api时,有位操作、md5加密、枚举转数字等需求。也有一些api可能返回地址、ip、城市编号等信息,需要做一些转换来方便展示。
6、UI
api测试工具自然需要一个好的界面,CUI实在是不好用(批量测试倒是用得着),一个酷炫好用又跨平台的GUI,绝对能让用的人心荡神怡。
因为目前的工作中心主要是api这块,而现在也找不到一个好用的api测试工具,所以在这里,给自己先订个目标:写一个好用的api测试工具。
几点考虑:
1、要同时考虑windows、mac、linux,所以打算用c#来实现,使用winform来做界面
2、做好分层分模块,支持插件化,以便将来支持别的api的测试
3、当然,如果真要做到很好,也是一个大坑了,所以会从简到繁慢慢改进的做
几个现有的api测试工具:
API调试工具_API Store
http://apistore.baidu.com/astore/toolshttpproxy
在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具 - aTool在线工具
http://www.atool.org/httptest.php
API测试工具
http://open.weibo.com/tools/console
API测试利器postMan 使用教程 - Alanblog - 博客园
http://www.cnblogs.com/alanjl/p/5490922.html
C#进阶系列——WebApi 接口测试工具:WebApiTestClient - 懒得安分 - 博客园
http://www.cnblogs.com/landeanfen/p/5210356.html
后端程序员之路 30、webapi测试工具的一点想法的更多相关文章
- 后端程序员之路 16、信息熵 、决策树、ID3
信息论的熵 - guisu,程序人生. 逆水行舟,不进则退. - 博客频道 - CSDN.NEThttp://blog.csdn.net/hguisu/article/details/27305435 ...
- 后端程序员之路 59、go uiprogress
gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/g ...
- 后端程序员之路 43、Redis list
Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NEThttp://blog.csdn.net/thinkercode/article/details/46565051 ...
- 后端程序员之路 42、Semaphore
前面学习了Pthreads,了解了线程和线程同步,而同步这个东西,与信号量是密不可分的.下面讨论的主要是Pthreads里的semaphore.h,而不是sys/sem.h [Linux]线程同步之信 ...
- 后端程序员之路 23、一个c++的api framework
在"21.一个cgi的c++封装"中,我们封装了cgi,在这之上,我们可以再来封装一个webapi的framework.当然,前文的Casablanca是个不错的选择,但是它比较庞 ...
- 后端程序员之路 22、RESTful API
理解RESTful架构 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/09/restful.html RESTful API 设计指南 - 阮一峰的网络日 ...
- 后端程序员之路 13、使用KNN进行数字识别
尝试一些用KNN来做数字识别,测试数据来自:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgesh ...
- 后端程序员之路 7、Zookeeper
Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper ...
- 后端程序员之路 4、一种monitor的做法
record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份recor ...
随机推荐
- UVA-11019 二维哈希算法
UVA-11019 题意: 就是给你AB两个字符矩阵,问你B矩阵在A矩阵中的出现次数. 题解: 参考链接:https://blog.csdn.net/qq_38891827/java/article ...
- c++ 向上取整和向下取整
在c++ 中: ceil()表示向上取整 floor()表示向下取整 当然,这很显然对浮点数很好用. 但如果两个int类型的数想要向上取整呢? 我们用 (n-1)/m+1 来表示即可.
- SpringBoot整合Swagger初探
当下的Web项目大都采用前后端分离+分布式微服务的架构.前后端分离式的开发中,前端开发人员要与后端开发人员协商通信接口,约定接口规范.因此对于开发人员来说能够维持一份及时更新且完整全面的API文档会大 ...
- python阿里云api查询域名是否可以注册(CheckDomain)
import requests from fun import * from urllib import parse url ='http://domain.aliyuncs.com/?' acces ...
- Dapr 交通控制示例
Dapr 已在塔架就位 将发射新一代微服务 牛年 dotnet云原生技术趋势 Dapr是如何简化微服务的开发和部署 前面几篇文章都是从大的方面给大家分享Dapr 能帮助我们解决什么问题,微软从开源到1 ...
- 015.NET5_MVC_Razor局部视图
局部视图 1. 可以增加代码的重用性 如何定义? 1.添加一cshtml文件 2. 在页面中调用局部视图:@html.Partial("局部视图的名称") 问题:局部视图中不能访问 ...
- CSS3 优先级
CSS3 优先级 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Specificity 优先级 在本文章中 概念 优先级是如何计算的? 选择器 ...
- TensorFlow & Machine Learning
TensorFlow & Machine Learning TensorFlow 实战 传统方式 规则 + 数据集 => 答案 无监督学习 机器学习 神经元网络 答案 + 数据集 =&g ...
- 封装 React Native 原生组件(iOS / Android)
封装 React Native 原生组件(iOS / Android) 在 React Native中,有很多种丰富的组件了,例如 ScrollView.FlatList.SectionList.Bu ...
- vue常用方法封装-一键安装使用(赠送免费工具)
相信大家在使用vue开发过程中一定遇到了各种方法的整理收集,每次遇到新的问题都需要找到合适的方法 这里我给大家封装了一些vue项目中常用到的方法合集,免费提供费大家 因此,jsoften横空出世,不为 ...