接口测试

C#进阶系列――WebApi 接口测试工具:WebApiTestClient

匿名 (未验证) 提交于 2019-12-02 22:09:29
C#进阶系列――WebApi 接口测试工具:WebApiTestClient 一、WebApiTestClient介绍 1、WebApiTestClient组件作用主要有以下几个: (1)、将WebApi的接口放到了浏览器里面,以可视化的方式展现出来,比如我们通过http://localhost:8080/Help这个地址就能在浏览器里面看到这个服务里面所有的API接口以及接口的详细说明,省去了我们手写接口文档的麻烦。 (3)、可以修改http请求头文件Head和请求体Body里面的参数,指定发送http请求的特性,比如指定我们最常见的contentType指示参数的类型。 (4)、组件拥有测试接口的功能,用过Soup UI的朋友应该知道,通过Soup UI能够方便测试WebService参数以及返回值。我们的WebApiTestClient也可以实现类似的功能,直接通过页面上的测试按钮,就能测试接口。 2、WebApiTestClient是一个开源组件。开源地址:https://github.com/yaohuang/WebApiTestClient 二、WebApiTestClient展示 点击某一个接口查看接口详细。例如本文查看Get请求的无参方法,右下角有按钮可以测试接口。 点击“Test API”按钮 点击Send发送请求 第二个有参数的接口 手动输入参数,得到返回结果

接口测试基础知识

北慕城南 提交于 2019-12-02 22:07:49
http协议:http请求:请求行 请求头 空行 消息体 get 通常没有空行 和消息体 请求行:请求方法 url 协议以及版本 get /index.html/http/1.1 请求头:host (主机) content-type: 请求参数的数据存储类型 如果与接口文档不一致,会发生错误 content-length:长度 等 Content-Type: application/x-www-form-urlencoded 要求是这个,如果选择其他格式,会报错,会导致参数丢失 post请求: Content-Type: application/x-www-form-urlencoded 要求这个,使用form-data格式也OK 但是put和delete请求不可以 消息体:用来存放客户端请求操作的信息 --参数 消息体格式:Json Xml www-form-urlencoded http响应: 状态行:协议+状态码 响应头:与请求头相似 空行 消息体: 1.接口测试分类:get、post、delete、put post和get区别:post是以表单形式添加数据的 2.接口测试过程:需求讨论、需求评审、场景设计、用例设计、数据准备、执行测试 3.用例:功能、逻辑业务、异常、安全 a.功能用例设计:功能是否正常、功能是否按照接口文档实现 b.逻辑业务用例设计:是否依赖业务(例如

[【java】]测试接口为什么返回404,将Controller改为RestConntroller问题成功解决!

匿名 (未验证) 提交于 2019-12-02 21:42:56
将Controller改为RestConntroller问题成功解决! 附:@Controller和@RestConntroller区别 @RestController is a stereotype annotation that combines @ResponseBody and @Controller. 意思是: @RestController注解相当于@ResponseBody + @Controller合在一起的作用。 1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。 例如:本来应该到success.jsp页面的,则其显示success. 2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。 3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。 文章来源: https://blog.csdn.net/qq_41570658/article/details/92011225

demo-client使用说明

一世执手 提交于 2019-12-02 21:25:24
demo-client项目说明 demo-client是一个普通的maven项目( https://gitee.com/fastjrun/demo-client ),主要是用来配合讲解如何编写和维护接口测试用例,其中demo_user.xml是接口定义文档,pom中提到的测试接口地址为: http://demo.fastjrun.cn/demo-buffle 。 具体接口定义可以参考如下网址: http://demo.fastjrun.cn/demo-buffle/swagger-ui.html 准备windows开发环境 参考 开发工具及安装规划 普通玩法 下载ciHelper1.7版本,install本地 #以下操作需要在git bash中执行 cd d:/workshop git clone https://gitee.com/fastjrun/ciHelper.git cd ciHelper git checkout v1.7 mvn clean install 下载demo-client #以下操作需要在git bash中执行 cd d:/workshop git clone https://gitee.com/fastjrun/demo-client.git cd demo-client git checkout v1.1 mvn clean package 成功的话

20191030 测试过程的想法

与世无争的帅哥 提交于 2019-12-02 19:25:31
功能测试的用例编写 熟悉需求,梳理了测试点,未细化 再结合详细设计文档,补充测试场景 最后结合需求文档,补充用例的详细操作和期望结果 并给用例划分测试优先级 接口测试落实 目前来说,用例编写及评审完后,有1、2天的空闲时间,可以根据接口开发情况,看接口能测试的力度。 后期再完善接口测试用例(但目前来说,接口测试的数据准备不合理,测试数据是写死的,需要手工提前准备) 性能测试 迭代版本是否有模块,需要考虑支持N个用户的并发,每次迭代,性能能得到保持,即性能的基准测试 迭代版本是否有大量数据的查询、统计,如果统计页面使用稍微频繁,服务器资源占用是否合理,是否有慢SQL,会引起后台系统挂掉? 因此在测试策略中需要考虑这些。 来源: https://www.cnblogs.com/ww-xiaowei/p/11760497.html

工厂增强

别说谁变了你拦得住时间么 提交于 2019-12-02 18:56:17
声明式增强   声明式增强:借助Spring IOC的机制,为ProxyFactory代理工厂的属性实现依赖注入,这样做的优点是可配置型高,易用性好。    实例:     DoSomeService接口:            DoSomeServiceImol实现类:            BeforAdvice增强类:            Application-statemenr.xml文件:            测试:            结果:        环绕增强    环绕增强相当于前置增强和后置增强的结合体,使用<aop:around>处理    实例:     DoSomeService接口:            DoSomeServiceImpl实现类:            BeforAdvice增强类:            application-around.xml文件:            测试:            结果:            异常增强    异常增强处理,在目标方法抛出异常后织入;使用<aop:after-throwing>处理   新增exception包,作为异常抛出增强的讲解   实例:     DoSomeService接口:            DoSomeServiceImpl实现类:       

Spring代理模式

久未见 提交于 2019-12-02 16:35:08
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子 用图表示如下: 代理模式的关键点是:代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象 1.1.静态代理(类似于装饰者模式) 静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类. 下面举个案例来解释: 模拟保存动作,定义一个保存动作的接口:IUserDao.java,然后目标对象实现这个接口的方法UserDao.java,此时如果使用静态代理方 式,就需要在代理对象(UserDaoProxy.java)中也实现IUserDao接口.调用的时候通过调用代理对象的方法来调用目标对象. 需要注意的是,代理对象与目标对象要实现相同的接口

接口测试及测试流程

无人久伴 提交于 2019-12-02 15:15:04
接口测试用处: 1. 节约时间,缩短项目时间 2. 提高工作效率 3. 提高系统的健壮性 接口测试分类 不同接口类型差异 :参数提交方式 请求数据大小 安全性 接口种类 :内部接口:上层服务与下层服务;同级 外部接口 https四种请求方式 :get: 请求数据较小,存放在地址栏,安全性较低 post: 以webform形式存放数据,数据较大,安全性较高; delete put 备注:postman接口测试插件(谷歌开发) 1.接口测试流程: 需求讨论-需求评审-场景设计-用例设计-数据准备-执行 2.为什么设计用例(重) (1)理清思路,以防漏测 (2)提高测试效率 (3)跟进测试进度 (4)告诉领导做过 (5)跟进重复性的工作 3.接口测试用例设计着手点 (1)功能(2)逻辑业务(3)异常(4)安全 4.前提 (1)功能测试-找产品要需求文档 (2)接口测试-找开发要接口文档 5.功能测试用例设计方法 (1)功能是否正常(显示success) (2)功能是否严格按照接口文档实现 (开发文档登录名写的loginname,开发时写成username是不行的,要严格按接口文档执行) 6.逻辑业务测试用例设计方法 (1)是否依赖业务 (没有登录成功就下单是不可能的,下单时检查是否登录成功,存在依赖关系) 7.参数异常测试用例设计方法 (1)关键字参数

Moq框架简单使用

孤者浪人 提交于 2019-12-02 14:39:16
Moq框架简单使用 系列目录 Moq库简介及安装 Moq简介 Moq是.net平台下的一个非常流行的模拟库,只要有一个接口它就可以动态生成一个对象,底层使用的是Castle的动态代理功能. 它的流行赖于依赖注入模式的兴起,现在越来越多的分层架构使用依赖注入的方式来解耦层与层之间的关系.最为常见的是数据层和业务逻辑层之间的依赖注入,业务逻辑层不再强依赖数据层对象,而是依赖数据层对象的接口,在IOC容器里完成依赖的配置. 这种解耦给单元测试带来了巨大的便利,使得对业务逻辑的测试可以脱离对数据层的依赖,单元测试的粒度更小,更容易排查出问题所在. 大家可能都知道,数据层的接口往往有很多方法,少则十几个,多则几十个.我们如果在单元测试的时候把接口切换为假实现,即使实现类全是空也需要大量代码,并且这些代码不可重用,一旦接口层改变不但要更改真实数据层实现还要修改这些专为测试做的假实现.这显然是不小的工作量. 幸好有Moq,它可以在编译时动态生成接口的代理对象.大大提高了代码的可维护性,同时也极大减少工作量. 除了动态创建代理外,Moq还可以进行行为测试,触发事件等. Moq安装 Moq安装非常简单,在Nuget里面搜索moq,第一个结果便是moq框架,点击安装即可. Moq简单使用 本示例中要使用到的代码如下 public class MyDto { public string Name {

Spring Boot项目中使用Mockito

雨燕双飞 提交于 2019-12-02 14:38:46
摘自: https://www.cnblogs.com/javaadu/p/11748415.html Spring Boot项目中使用Mockito 本文首发于个人网站: Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spring Boot可以跟BDD(Behavier Driven Development)工具、Cucumber和Spock协同工作,对应用程序进行测试。 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试、集成测试、接口测试)可以保证系统的可维护性,当我们修改了某些代码时,通过回归测试可以检查是否引入了新的bug。总得来说,测试让系统不再是一个黑盒子,让开发人员确认系统可用。 在web应用程序中,对Controller层的测试一般有两种方法:(1)发送http请求;(2)模拟http请求对象。第一种方法需要配置回归环境,通过修改代码统计的策略来计算覆盖率;第二种方法是比较正规的思路,但是在我目前经历过的项目中用得不多,今天总结下如何用Mock对象测试Controller层的代码。 在之前的几篇文章中,我们都使用bookpub这个应用程序作为例子,今天也不例外