接口测试

从0开始Jmeter接口测试实战

瘦欲@ 提交于 2019-11-27 12:58:41
在之前的文章中给大家介绍过接口测试文档和接口测试用例示例,本文基于Jmeter工具给大家介绍一下如何实现接口测试用例:包括发起Http请求,绕过登陆,验证响应。JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。 接口测试用例示例 组织测试用例 Jmeter是绿色安装,官网(https://jmeter.apache.org/download_jmeter.cgi)下载安装包以后解压即可使用。打开Jmeter,命名测试计划,在测试计划下新建线程组,在线程组下编写接口请求,保存Jmeter测试计划为Jmeter脚本(.jmx文件)。 一个Jmeter测试计划下可以有多个线程组,一个Jmeter线程组下可以有多个Jmeter请求 Jmeter测试计划对应手工测试用例的Suite,Jmeter线程组对应手工测试用例的TestCase,Jmeter请求对应手工测试用例的Test Step 根据接口测试用例,编写出如下测试脚本大纲: 发起Http请求 Http请求包含三部分,Jmeter使用Sampler->Http请求 发起Http请求 请求行(HTTP协议和请求的URL,在Http请求中编写) 请求头(头信息,选填,可在Http信息头管理器中编写请求头信息) 请求体

jmeter测试dubbo接口

≯℡__Kan透↙ 提交于 2019-11-27 10:14:13
https://blog.csdn.net/haiweizhourong/article/details/82153991 https://www.cnblogs.com/yangxia-test/p/4019541.html 注意在打包时, 1 选择File > Project Structure > Artifacts + > JAR > Empty,手动加入所有的依赖包 2 Build > Build Artifacts... > sampleName > Build/Rebuild 3 将jar包放到lib/ext下面 启动jmeter后,新建java请求 需要查看平均响应时间可以安装jmeter插件管理工具后,选择需要的插件,具体参见https://www.cnblogs.com/lnn123/p/9925162.html 1. 下载一个jmeter的插件管理工具 http://jmeter-plugins.org/get/ 2. 将下载的文件拷贝的你的JMeter根目录下的 lib/ext 目录 3. 重启jmeter 安装对应的插件后可以添加listener 来源: https://www.cnblogs.com/meadow/p/11358530.html

加密接口如何测试?

半城伤御伤魂 提交于 2019-11-27 09:32:23
随着互联网技术的发展,服务安全性和数据安全性变的越来越重要,提供接口服务的系统往往会应用各种加密技术,保证接口的安全调用,如何应用工具来实现加密接口测试成为一项必要技能。在讲解如何用Jmeter实现接口安全性测试之前,先来了解一下常见的加密算法,测试同学可根据不同的加密算法类型和程序猿&程序猿沟通,获取所需的信息,实现加密接口的处理。 摘要算法 对明文编码生成信息摘要,以防止被篡改。比如MD5使用的是Hash算法,无论多长的输入,MD5都会输出长度为128bits的一个串。 摘要算法不要秘钥,客户端和服务端采用相同的摘要算法即可针对同一段明文获取一致的密文 对称加密 对称加密算法是共享密钥加密算法,在加密解密过程中,使用的密钥只有一个。发送和接收双方事先都知道加密的密钥,均使用这个密钥对数据进行加密和解密。 数据加密:在对称加密算法中,数据发送方将明文 (原始数据) 和 加密密钥一起经过加密处理,生成复杂的密文进行发送。 数据解密:数据接收方收到密文后,使用加密的密钥及相同算法的逆算法对加密的密文进行解密,将使其恢复成可读明文。 非对称加密 非对称加密算法,有两个密钥,一个称为公开密钥 (publickey),另一个称为 私有密钥 (private key),加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。 如果使用公钥对数据进行加密,只有用对应的私钥才能进行解密

Java泛型

≡放荡痞女 提交于 2019-11-27 08:18:07
原文链接: Jav泛型全总结 转 java泛型全总结 2018年07月05日 20:21:28 华山拎壶冲 阅读数 15082 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“ 参数化类型 ”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型) 。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 List arrayList = new ArrayList(); arrayList.add( "aaaa" ); arrayList.add( 100 ); for ( int i = 0 ; i< arrayList.size();i++){ String item = ( String )arrayList. get (i); Log .d( "泛型测试" , "item = " + item); } 毫无疑问

Dubbo+ZooKeeper搭建的简单示例

萝らか妹 提交于 2019-11-27 07:56:45
/*--> */ /*--> */ 一、简介   基于Dubbo + ZooKeeper实现的分布式架构,调用接口方法就像调用本地方法一样调用远程服务。   来自Dubbo官网的架构图:   节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器   调用关系说明 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注册自己提供的服务。 服务消费者在启动时,向注册中心订阅自己所需的服务。 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。   Dubbo 架构具有以下几个特点,分别是 连通性、健壮性、伸缩性、以及向未来架构的升级性 。 二、搭建Zookeeper注册中心详细步骤参考:    https://www.cnblogs.com/sun-flower1314/p/11341499.html 三、创建三个maven工程:接口工程

Unity AsyncGPUReadback 接口测试

一个人想着一个人 提交于 2019-11-27 07:34:45
Unity2018新加入了该接口,可以做到异步RenderTexture->Texture2D和异步的ComputeBuffer.GetData 那么写了几个例子来测试下。 1.RenderTexture->Texture2D 异步: IEnumerator Start() { var rt = new RenderTexture(512, 512, 0); //Graphics.xxx... var req = AsyncGPUReadback.Request(rt); yield return new WaitUntil(() => req.done); var tex = new Texture2D(512, 512, TextureFormat.RGBA32, false); var colorArray = req.GetData<Color32>().ToArray(); tex.SetPixels32(colorArray); tex.Apply(); } 同步: RenderTexture.active = rt; var tex = new Texture2D(512, 512, TextureFormat.RGBA32, false); tex.ReadPixels(new Rect(0, 0, 512, 512), 0, 0, false); tex

RestBird API接口测试高级教程-Python预请求脚本示例

狂风中的少年 提交于 2019-11-27 05:48:50
本文你可以了解到 预请求脚本输入界面 设置 Url 设置Request Header 设置Request 查询参数 设置文本Request Body 设置 Json Request Body 设置Form-Data Request Body 访问变量 RestBird不仅支持通过图形界面进行API测试,还支持脚本编程。你可以通过Pre-request, ReponseValidation and PureScript提供强大的编程能力,撰写脚本,完成各种复杂的任务。 预请求脚本输入 界面 如下图,点击“Pre-Request Scripts”(预请求脚本)标签页。在下面的输入框输入脚本。在进行API请求时,会先执行预请求脚本。 设置Url 执行下面脚本,会把你请求的URL地址改为下面示例脚本的URL。 # encoding: utf-8 import requests def PreRequest(request, ctx) : request.url = "http://www.google.com" 设置Request Header # encoding: utf-8 import requests def PreRequest(request, ctx) : request.headers['aa'] = 'bb' request.headers['counter'] =

关于面试总结12-接口自动化面试题

删除回忆录丶 提交于 2019-11-27 04:57:49
转载: https://www.cnblogs.com/yoyoketang/p/10220061.html 关于面试总结12-接口自动化面试题 前言 前面总结了一篇关于接口测试的常规面试题,现在接口自动化测试用的比较多,也是被很多公司看好。那么想做接口自动化测试需要具备哪些能力呢? 也就是面试的过程中,面试官会考哪些问题,知道你是不是真的做过接口自动化测试?总的来说问的比较多的就是以下几个问题: 1.json和字典的区别? -对基础数据类型的考察 2.测试的数据你放在哪? -数据与脚本分离 3.参数化 - 数据驱动模式 4.下个接口请求参数依赖上个接口的返回数据 - 参数关联 5.依赖于登录的接口如何处理 -token和session的管理 6.依赖第三方的接口如何处理 -mock模拟数据返回 7.不可逆的操作,如何处理,比如删除一个订单这种接口如何测试 -造数据 8.接口产生的垃圾数据如何清理 - 数据清理 9.一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成功 - 造数据,改数据库订单状态 10.python如何连接数据库操作? 11.其它的就是运行出报告、代码管理(git)、运行策略和持续集成jenkins相关了 1.json和字典dict的区别? 现在自动化培训烂大街,是个人都能说的上几个框架,面试如果问框架相关问题,求职者只需一瓶82年的雪碧

接口测试的误区和简单介绍

╄→尐↘猪︶ㄣ 提交于 2019-11-27 04:55:10
什么是接口测试?怎样做接口测试? 扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么? 8.接口测试都要掌握哪些知识? 9.其他相关知识? 1.什么是接口? 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。 2.接口都有哪些类型? 接口一般分为两种:1.程序内部的接口 2.系统对外的接口 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。 程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。 接口的分类:1.webservice接口 2.http api接口 webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。 http api接口是走http协议

接口测试 — Fiddler弱网测试

喜欢而已 提交于 2019-11-27 03:48:48
前言 在开发和测试中或多或少会考虑产品在弱网情况下的表现,针对不同的平台,有不同的弱网模拟方案 弱网模拟: H5直接使用 Chrome 的弱网模拟功能 iOS使用青花瓷( charles ) Android等,使用 Fiddle 使用Fiddler进行弱网模拟 打开Fiddler, 点击Rules --> Customize Rules;或者直接(Ctr + R)进入限速Code界面 Ctrl+F弹出搜索框,搜索关键字 m_SimulateModem ,找到如下代码框,设置你想要模拟的网速:: if ( m_SimulateModem ) { // Delay sends by 300ms per KB uploaded. oSession [ "request-trickle-delay" ] = "300" ; // Delay receives by 150ms per KB downloaded. oSession [ "response-trickle-delay" ] = "150" ; } 代码中: request-trickle-delay 代表的是你网络请求的延迟时间; response-trickle-delay 代表的是网络响应的延迟时间 手动设置上行,下行速率,模拟网路速度的原理,没上传/下载1KB要delay多久… 网络取值的算法 :1000/下载速度 =