【C#编程最佳实践 十三】接口测试实践

简介: 【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,这里为了方便大家,我将下载好的放到百度云盘上,大家可以随意下载

下载地址 https://pan.baidu.com/s/1Ya9VfFxHs8omo0Jewfkujw

介绍

主面板

主面板主要分三个区域,一个是历史和集合管理一个是新建请求一个是返回值查看

历史和集合部分

主面板作半部分可以创建文件夹,每一个请求可以说是最基本的业务功能,那么更大的一整块儿功能就以文件夹的形式而存在,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,重新生成解决方案

相关文章
|
26天前
|
安全 Linux 测试技术
提升龙蜥内核测试能力!探究持续性模糊测试优化实践
清华大学软件学院对Anolis OS使用靶向模糊测试方法将测试工作引向修改的代码,进而提高对业务代码的测试能力。
|
1天前
|
jenkins 测试技术 持续交付
深入探索软件测试中的持续集成与自动化测试实践
【4月更文挑战第27天】 在当今软件开发的快速迭代过程中,持续集成(CI)和自动化测试已成为确保代码质量和加快交付速度的关键因素。本文将探讨如何通过实施持续集成流程,并结合自动化测试策略来优化软件测试工作。我们将分析持续集成的原理、自动化测试的最佳实践以及如何将这些方法应用于实际项目中,旨在为读者提供一套完整的解决方案,以提高软件项目的效率和质量。
9 3
|
1天前
|
Web App开发 IDE 测试技术
深入理解自动化测试框架Selenium的设计与实践
【4月更文挑战第27天】在软件开发周期中,确保代码质量和功能正确性至关重要。随着敏捷开发的普及和持续集成/持续部署(CI/CD)的实践,自动化测试已成为现代开发工作流程的核心部分。本文将探讨一个广泛使用的开源自动化测试工具——Selenium,并剖析其设计原理、架构以及在实际中的应用。我们将通过具体案例分析,展示如何有效利用Selenium进行跨浏览器测试,并讨论在真实环境中可能遇到的挑战及解决方案。
|
7天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
7天前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
8天前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写"Hello, World!"程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
8天前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。
|
8天前
|
缓存 算法 测试技术
优化 C#编程性能的策略
【4月更文挑战第20天】优化C#性能策略包括:选择合适算法和数据结构,避免频繁对象创建,缓存常用数据,减少内存分配,使用异步编程,优化数据库操作(如合理查询和使用索引),利用多线程并行处理,精简代码,使用性能分析工具,硬件升级,以及进行性能测试。综合应用这些策略可提升程序性能和响应性。
|
12天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
|
12天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。