接口测试

<转>charles Mock测试总结

故事扮演 提交于 2019-11-30 02:45:13
测试存在问题: 1、测试环境接口不稳定 2、业务系统不是孤立存在的,关联方太多,而且关联系统常常出现不稳定的情况 3、暂时无可用Mock server工具 4、接口未提测验收完成,前端测试提前介入 影响: 测试依赖数据,依赖接口阻塞导致测试延期,干耗时间成本人力成本 解决方案: 引入Mock测试,有了Mock,测试童鞋在后端接口未准备好时按照接口文档就可以开始造数据进行测试工作,不会出现测试一直等待开发的情况,也可以开发联调与测试进行。这样的话,开发自测阶段就可以及早开展,从而发现缺陷的时机也提前了,有利于整个产品app测试覆盖率提升和产品项目进度的保证 2、环境配置及准备 2.1、安装charles及一些配置项说明 去 Charles 的官方网站( http://www.charlesproxy.com )下载最新版的 Charles 安装包,是一个 dmg 后缀的文件。打开后将 Charles 拖到 Application 目录下即完成安装。 2.1.1将 Charles 设置成系统代理 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。 启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将

linux下java调用c/c++库

元气小坏坏 提交于 2019-11-30 02:34:29
本文仅作为自己测试过程的一些记录。 由于在项目中想复用之前的c代码接口以减少java开发的工作量,因此做了最简单的HelloWorld测试。java调用C/C++库是使用JNI接口。具体过程记录如下: 1、在eclipse下创建一个名为nativeTest的java工程,在其中新建名为nativeTest包,新建名为HelloWorld的类。代码如下: package nativeTest; public class HelloWorld { static { System.loadLibrary("HelloWorld"); } private native void greeting(); public static void main(String[] args) { new HelloWorld().greeting(); } } 对上述工程进行进行编译。 2、需要去创建符合JNI接口的HelloWorld库。 (1) 生成头文件,利用javah命令。在eclipse中配置javah的过程可以参考 点击打开链接 配置完javah之后就可以通过点击操作即可生成需要的头文件。生成的头文件如下: /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class

Jmeter接口测试实例-牛刀小试

痴心易碎 提交于 2019-11-29 21:55:43
首页 新随笔 管理 Jmeter接口测试实例-牛刀小试 本次测试的是基于HTTP协议的接口,主要是通过Jmeter来完成接口测试,借此熟悉Jmeter的基本操作。 本次实战,我是从网上找的接口测试项目,该项目提供了详细的接口文档,我们可以通过学习接口文档来设计测试用例,最后再使用Jmeter进行实战。总的来说,这个项目很适合用来练手,项目网址: http://doc.nnzhp.cn/index.php?s=/6&page_id=8 所有设置如下: 1.获取学生信息(GET请求) 从接口文档中,我们可以看到获取学生信息用到的是GET方式的请求,入参中 stu_name 为必填项,返回参数太多,在此就不详细说明了。我们先创建一个线程组,在线程组下添加一个HTTP请求和察看结果树,如下: 上面的是请求正确的结果,如果请求错误,比如填写一个系统数据库中 stu_name 没有的值,那么返回结果如下: 2.登录(POST) 在登录接口中,接口文档中提供了一个测试用户,我们可以利用该用户来模拟测试。 登录接口用到的是POST请求方式,入参 username 和 passwd 为必填项,我们再创建1个线程组,在线程组下添加一个HTTP请求和察看结果树,如下: 当我们填写的是错误的入参时,返回结果如下: 3.添加学生信息(POST请求,JSON类型) 在添加学生信息的接口中

postman接口测试使用

℡╲_俬逩灬. 提交于 2019-11-29 21:18:21
在做测试之前,先要了解一下http相关的一些知识,这样做起来才会更加顺手。 http的请求分为header 和 body,一般在header里面放一些其他的信息,比如cookie,浏览器信息 body作为请求体,会存放一些参数。 get和post两种请求方式: get请求没有body,参数都是放在URL里面,post请求的参数都是放在body里面。 http请求中的一些状态码: 200 #2 请求成功 300 #3 代表重定向 400 #4 代表客户端发出去的请求有问题 500 502 代表服务端有问题 搞清楚以上的问题,再用postman做接口测试,就会容易上手的多了。 1.get请求的测试方法,如下图所示: 首先选择请求的方式,get,然后输入请求接口地址,在params中,输入请求的参数,及其对应的值,点击send,下面就会显示接口的内容。 2.post请求接口,在请求方式选择post,输入接口地址,post的参数和get的位置不同,是放在body中的form-data,输入对应的key和value,如果是json参数,选择json方式传参 3.如果没有接口文档,需要自己抓包,可以通过查看浏览器页面元素的方式。 定义参数 为了方便以后接口地址变化,造成的测试用例地址的修改,我们可以把地址设置成对应的参数,这样我们只要修改一下参数对应的值,就可以了,参数设置方法如下:

函数式接口的使用 (Function、Predicate、Supplier、Consumer)

时光总嘲笑我的痴心妄想 提交于 2019-11-29 19:19:40
参考:https://blog.csdn.net/jmj18756235518/article/details/81490966 函数式接口 定义:有且只有一个抽象方法的接口 Function<T, R>: y = f(x) T: x 输入参数, R: 返回结果,y 所有标注了@FunctionalInterface注解的接口都是函数式接口,所有标注了该注解的接口都将能用在lambda表达式上 特点:通过传入不同的Function,实现了在同一个方法中实现不同的操作,在实际开发中可以大大减少很多重复的代码。 例如:新增用户的功能,用户分为VIP和普通用户,且有两种不同的新增逻辑。那么此时我们就可以先写两种不同的逻辑。除此之外,这样还让逻辑与数据分离开来,我们可以实现逻辑的复用。 函数式编程与非函数式编程的区别 函数式编程: 先考虑传入的参数,再考虑方法的实现 非函数式编程:先定义好方法,再传入指定的参数 /** * 需求 * 1.定义一个函数式接口CurrentTimePrinter,其中抽象方法void printCurrentTime(),使用注解@FunctionalInterface * 2.在测试类中定义static void showLongTime(CurrentTimePrinter timePrinter)

Jmeter接口测试之常用断言

北慕城南 提交于 2019-11-29 18:54:23
在接口测试中,响应状态码为200,表明服务处理了你的请求,同进进行了结果返回,但并不能代表处理的结果符合接口功能。此时只有进一步的检查“响应数据”是否与接口说明中的一致。 Jmeter提供了一个断言元件,实现检查接口测试中的响应数据是否符合预期,确保接口测试与预期的一致性。只有进行返回结果的比对检查才能断定接口的处理是否正确。 注:本篇内容以 “Jmeter快速创建接口测试脚本” 博客请求为列 1、响应断言 适用于:判断返回内容与预期结果的比对 步骤:在需要判断的“HTTP”请求接口上,右击“添加”\“断言”\“响应断言”。 例如,响应文本中含有“南京”,表示请求响应成功。 在“测试模式”中添加“南京”,点击“启动”图标,执行请求,查看结果树。可能到此有朋友感觉奇怪,怎么与未加断言时执行效果一致。 那再修改“响应断言”为“南京我爱你”,再次执行请求。 这时请求结果为红色表时请求执行结果与预期设置不同,未包括“南京我爱你”字符,证明此条接口用例执行失败。 下面对“响应断言”内容进行详细介绍。 APPly to: Main sample and sub-samples:作用于主取样器及对应子取样器 Main sample only:仅作用于主取样器 Sub-samples only:仅作用于子取样器 JMeter Variable:作用于jmeter变量

python接口测试实例完整代码

泄露秘密 提交于 2019-11-29 16:31:11
  自动化测试其实是吧一个个测试点通过结构化设计串联起来,然后通过第三方模块也好,内置的模块也好,解决每一个测试点遇到的问题,以完成一个完整的自动化测试脚本。下面就完成一个自动化测试脚本。   ............省略一万个字   完成了各个功能(各个模块代码省略)处理的函数,最后将其拼接起来,就可以组成一个完整的自动化测试,完整代码如下: import requests import hashlib from datetime import * import json username = '19999999999' password = hashlib.md5(b"123456").hexdigest() url = 'http://www.xxx.com/ajax/user_login/' form_data = {"uernsme":username,"password":password} login_response = requests.post(url,data = form_data) assert login_response.text == "success" c = login_response def make_oeder(): global c url = 'http://www.xxx.com/ajax/create_order/' form

基于spring-boot的测试桩设计-添加配置文件(properties)

独自空忆成欢 提交于 2019-11-29 15:40:54
编写测试时,有些内容可以放到配置文件中。 第一步:新增配置文件 conf.properties 第二步:编写配置文件类 MockConf 1 package mock.mockdemo.conf; 2 3 import lombok.Data; 4 import org.springframework.beans.factory.annotation.Value; 5 import org.springframework.context.annotation.PropertySource; 6 import org.springframework.stereotype.Component; 7 8 9 @Data 10 @Component 11 @PropertySource("classpath:config/conf.properties") 12 public class MockConf { 13 @Value("${user_num}") 14 public String userNum; 15 } 第三步:添加接口和实现类 接口: 实现类: 第四步:编写controller 测试: 结果:可以正常获取到配置文件内容 源码地址: https://github.com/yuesest/mockdemo 来源: https://www.cnblogs.com

postman测试文件上传接口教程

有些话、适合烂在心里 提交于 2019-11-29 11:16:52
postman是一个很好的接口测试软件,有时候接口是Get请求方式的,肯定在浏览器都可以测了,不过对于比较规范的RestFul接口,限定了只能post请求的,那你只能通过工具来测了,浏览器只能支持get请求的接口,而且对于如果要将传参放在body里的,也肯定要通过工具,最近在测接口,要测试文件上传的,可以用postman来做 首先对于上传接口,要先改为POST请求,然后不能用默认的Params 选好之后,这里要选择将参数放在请求body里,选择form-data,然后key填上,选择key右边的类型,选择为file类型,然后就会如图出现选择文件的按钮 上传文件,点击send按钮发送请求,就可以测试 点击Save是将接口保存,不过要有注册一个账号,之后登陆就可以直接测试 来源: https://www.cnblogs.com/mzq123/p/11516151.html

Mock测试,何去何从

霸气de小男生 提交于 2019-11-29 10:56:52
2016-10-24 出处: Qtest之道 作/译者:闫耀珍 上面的情景是不是似曾相识呢?现今的业务系统已经很少是孤立存在的了,尤其对于一个大公司而言,各个部门之间的配合非常密切,我们或多或少都需要使用兄弟团队或是其他公司提供的接口服务,当然,我们也会给其他兄弟部门提供接口。这样的话,就对我们的联调和测试造成了很大的麻烦。假如各个兄弟部门的步伐完全一致,那么问题就会少很多,但愿望是美好的,现实是残酷的,要做到步伐一致基本是不可能的。所以,对于这种情况,我们的解决方案通常是搭建一个临时的mock server来模拟那些兄弟部门未开发完成的接口,以达到单方面联调测试的效果,我们下面会介绍一些mock小工具。一般来说,搭建这种临时的mock server比较简单,但是往往也意味着功能简单,有时候可能我们得需要为不同的接口进行重复开发以实现特定功能。这样的话问题就来了,随写随仍不是我们互联网人一贯的作风,我们需要将这种基础服务传承下去,要服务于众多的其他互联网人,我们称之为share。那么能不能构建一个通用的mock server呢?自己动手丰衣足食,萌生了自己开发一套mock系统,就有了现在的雏形——xMock,且听我慢慢道来关于mock的二三事。 一、什么是mock? mock这个单词解释起来,本意就是模拟或者效仿。我们可以把mock理解为一个替身,在软件开发领域,通常就是指模拟对象