【C#编程最佳实践 十三】接口测试实践
进入前后端分离开发的第二个阶段,也就是和前端联调之前,自己首先应该调试下接口是否能跑通,也就是接口测试,这样在和前端联调的时候能够做到心中有数,快速定位问题所在。
接口测试与单元测试
单元测试
单元测试我认为更多的是对通用的最基础方法的测试,换句话说,就是不掺杂业务的测试,应用最多的场景可以说就是对数据的增删改查的测试,一个好的规范的单元测试可以保证小规模代码块功能的正常实现,且该部分代码一般来说是被大量引用的。关于单元测试,我在另一篇博文里有详细提到:
传送门 http://blog.csdn.net/sinat_33087001/article/details/78563929
接口测试
接口测试我认为是对一个最基本的业务模块的测试也就是通常意义上的一个方法的实现,接口测试往往就涉及业务,并且需要网页访问,和前端联调前需要确认返回结果,该部分代码不会被大量引用,是和业务紧密相关的。
接口测试与单元测试的区别
1,单元测试需要自己编写;接口测试不需要,只要使用工具就好,例如PostMan
2,单元测试和业务关联性很小,基本无关;接口测试和业务紧密关联
3,单元测试多应用在provider层,和数据有交互的地方,在写这部分代码时就顺便编写;接口测试多在Controller层,在和前端交互的地方,在和前端联调之前使用工具做好接口测试
测试工具PostMan
下载
该工具性能强大,具体怎么用我这里不再赘述,已经有人详细的做了介绍,地址如下:
尊重原创版权:传送门http://blog.csdn.net/u013613428/article/details/51557804
下载的话需要翻墙,需要VPN,这里为了方便大家,我将下载好的放到百度云盘上,大家可以随意下载
介绍
主面板
主面板主要分三个区域,一个是历史和集合管理,一个是新建请求,一个是返回值查看
历史和集合部分
主面板作半部分可以创建文件夹,每一个请求可以说是最基本的业务功能,那么更大的一整块儿功能就以文件夹的形式而存在,Collections里也可以再细分,按照功能布局可以层层添加
创建url部分
创建url部分,左上部分可以选择接口访问方式,get或者是post,还有多种选择,但不常用。中间是域名填写的地方,下半部分是添加参数的地方,key是参数名,value是参数值
特别特别注意:*postman依据接口接收类型自动识别传入参数类型,所以填写的字符串什么的不用加双引号*,这里是个大坑,我之前分参数类型传入,结果不识别双引号,导致获取不到数据,坑了很久,值得特别注意
返回值查看
多种返回值查看方式可以查看,无论是xml还是json,等等,常用的是json
导出
也可以将已经完成的接口测试导出来,给前端使用,只要和前端约定好,就可以做到不需要天天跑到前端开发那里开会,一份json格式的导出文件搞定一切
疑惑和后续需要学习
1,postman在测试接口的时候,可能接口功能内部需要一些值(并非通过参数获取,而是上下文赋值),这种情况该怎么使用postman
2,302跳转请求的时候postman怎么处理
传入参数为对象
2018-3-09更新
前端调整
如果前端传入参数为对象,则postman需要做调整
1,首先传递类型为post
2,在Header中创建 key:Content-Type, value:application/json
3,在body的参数传递中改为row
后端用动态类接收参数
传入参数为dynamic,动态类,接收后赋值,前端可以选择传几个参数,后端如果没有接收到前端参数,赋默认值null,所以如果是int类型的化,要看以下注意:
注意:int类型的需要一次类型转换,否则如果不传会报错。
添加cookie
1,首先获取页面的cookie
2,然后再postman里添加cookie
3,名为name,值为value
调试
vs断点调试,非常好用,只需附加到进程并且打好断点,从postman发请求就可以直接跳到对应的断点上
注意,附加的时候是w3wp.exe
如果遇到目标与源不一致的情况的时候,可以依照如下步骤解决
1,等待1分钟左右
2,重新生成解决方案3
3,关闭vs,重新生成解决方案