API_接口测试规范
一、接口测试 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。二、接口测试的意义按照分层测试模型,处于中间层的接口测试,在稳定性,效率,成本,技术,实施难度上综合来讲,是收益最大的。相较于传统的UI层次的测试,接口测试把测试提前了(时间上,架构上),并且能够覆盖到一些UI测试无法触及的功能点,提高了测试的覆盖率,对质量控制提升了信心。接口测试也更容易实现自动化持续集成,支持后端快速发版需求,利于CT(持续测试)的开展。三、认识URL接口主要分为2大类:1.webservice接口webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具(例如:soapUI)进行调用,测试。【暂时业务上用不到,不扩展】2.http 接口Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。3.URL解析在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。HTTP协议工作于客户端-服务端架构之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。也可认为由4部分组成:协议、主机、端口、路径URL的一般语法格式为(带方括号[]的为可选项):【参考 URL百度百科 】protocol :// hostname[:port] / path / [;parameters][?query]#fragment以下面的URL为例:http://blog.xx.com.cn/s/blog_537ad6610102xtb1.html?tj=hist1)、协议部分,代表页面使用的是http协议,在Internet中可以使用多种协议,如HTTP,FTP等等。在"HTTP"后面的“//”为分隔符;2)、域名部分, blog.xx.com.cn ,也可以使用IP地址作为域名使用如:192.168.55.14:8080,其中8080为端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80/tcp;3)、虚拟目录部分,从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/s/”4)、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“blog_537ad6610102xtb1.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名5)、锚部分:从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分(可以理解为定位)6)、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。四、测试范围及用例设计思路接口测试范围分为以下5个方向:五、测试流程分析接口文档和需求文档(接口说明、请求方式、请求URL、请求参数、返回数据、返回实例)接口用例设计编写接口测试用例接口测试执行输出接口测试报告。六、如何快速评估自己的测试用例覆盖率:1)参数验证是否完整(包括各种边界和业务规则)2)业务需求点覆盖是否完整(单接口业务功,依赖接口业务功能)3)接口异常场景覆盖是否完整(数据的异常)八、接口测试用途回归测试非功能性测试 增量开发,持续集成的项目。

能介绍下 TCP/IP协议的电脑客户端软件 的接口测试大概是什么样的?
TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。以下是在实际工作中利用命令行测试TCP/IP配置步骤:1.单击“开始”/“运行”,输入CMD按回车,打开命令提示符窗口。2.首先检查IP地址、子网掩码、默认网关、DNS服务器地址是否正确,输入命令ipconfig/all,按回车。此时显示了你的网络配置,观查是否正确。3.输入ping127.0.0.1,观查网卡是否能转发数据,如果出现“Requesttimedout”(请求超时),表明配置出错或网络有问题。4.Ping一个互联网地址,看是否有数据包传回,以验证与互联网的连接性。5.Ping一个局域网地址,观查与它的连通性。6.用nslookup测试DNS解析是否正确,输入如nslookup,查看是否能解析。如果你的计算机通过了全部测试,则说明网络正常,否则网络可能有不同程度的问题。

沉淀!熬夜整理100个接口测试的知识点!!专业扫盲!
接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口是看不见的,但是可以访问!DNS是域名系统(Domain Name System),DNS是用来做域名解析的,它会在你上网输入网址后,把它转换成IP,然后去访问对方服务器;没有它,你想上百度就要记住百度的IP,但有了DNS的处理,你只需要记住对应网站的域名,即网址就可以了。HTTP协议:超文本传输协议,是基于TCP的协议,默认为80端口。它的作用是用来规定客户端和服务器的数据传输格式。是一种用于请求与响应模式的、无状态、无连接 的应用层协议。 由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应。使用fiddler工具抓取HTTPS, 体操作请查看文末领取教程1xx -- 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)2xx -- 成功(表明服务器成功地接受了客户端请求)3xx -- 重定向(客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求)4xx -- 客户端错误(发送错误,客户端有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息)5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)常见的返回码有:200 OK - [GET]:服务器成功返回用户请求的数据201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功202 Aceepted - [*]:表示一个请求已经进入后台排队(异步任务)204 NO CONTENT - [DELETE]:用户删除数据成功400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作401 Unauthorized -[*] :表示用户没有权限(令牌、用户名、密码错误)403 Forbidden -[*] :表示用户得到授权(与401错误相对),但是访问被禁止404 NOT FOUND -[*]:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。HTTP协议常用的请求方式有如下几种:HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。POST和GET都是向服务器提交数据,并且都会从服务器获取数据。区别:(1)传送方式:get通过地址栏传输,post通过报文传输(2)传送长度:get参数有长度限制(受限于url长度),而post无限制(3)GET产生一个TCP数据包(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据),POST产生两个TCP数据包(对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok返回数据)(4)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留(5)在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用post方式请求报文:一个HTTP请求报文由请求行(Request Line)、请求头(Header)、空行(Blank Line)和请求体(Body)4个部分组成。响应报文:HTTP响应报文和请求报文的结构差不多,由状态行、响应头、空行、响应体4个部分组成。是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。解决方案:通过cookie和session来保持状态。请求body;请求url+请求body:Content-type:application/x-www-form-urlencoded: 表单提交--键值对, formmultipart/form-data:文件上传---文件 ,MIMEapplication/json,text/xmlhttp协议目前有4个版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。1.存储位置不同:Cookie 是将用户数据通过加密的方式保存在客户端,大多数情况 Cookie 存储在浏览器;Session 是用于控制客户端和服务端的连接,Session 存储在服务器;2.存储容量不同:单个 Cookie 保存的数据不得超过 4kb,一个站点最多 20 个 Cookie,Session 一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;3.存取方式不同:Cookie 只能用 ASCII 字符串,通过编码方式获取 Unicode 字符或者二进制数据,不好存储复杂的信息,而 Session 能存储任何类型的数据;4.隐私策略/安全性不同:Cookie 放在客户端,可以进行 Cookie 欺骗,所以不安全,Session 放在服务端,更加安全;5.有效期不同:Cookie 可以设置属性达到长期有效,Session 依赖于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的过期时间默认为-1,只需要关闭窗口 Session 就会失效,就算不依赖 Cookie,用 UrL 重写也不能完成,如果 Session 超时时间过长,容易导致内存溢出;6.服务器压力不同:Cookie 保存在本地,不存在服务端压力,Session 保存在服务端,每个用户产生一个 Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用 Cookie;7.浏览器支持不同:如果浏览器禁用 Cookie,那么 Cookie 直接失效,Session 比较好点,可以用 URL 重写;8.Cookie 和 Session 应用的场景:Cookie 一般用于记住用户的登录状态,如记录用户的习惯,购物车;而 Session 用于登录验证。https在应用层。会话层为7层协议的第五层,为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务。在浏览器中输入URL并回车后,主要发生以下步骤:解析URL,获取要访问的域名DNS域名解析,根据访问的域名获得目标服务器的IP地址浏览器与服务端三次握手建立TCP连接连接建立成功之后就可以发送HTTP请求报文以及服务器返回HTTP响应报文断开TCP链接浏览器解析响应报文,渲染页面

想做一名软件测试工程师应该掌握哪些技能?
01 软件测试理论 作为一个软件测试人员,总不能不知道软件测试本身的东西吧。你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,还不关心会不会做。再比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?02 软件测试流程如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧除了这些,还需要知道在测试流程每个阶段都要相应地做些什么事吧。03 测试文档软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。软件测试人员必备技能之一就是写文档,会总结。软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。04 计算机基础软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。不然让你关个服务,你迷茫……让你配置个环境变量,你再迷茫……让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫………………计算机基础是软件测试人员必备的技能之一。05 软件、工具作为一个IT人员,你好意思说自己不会几个软件么?那我们就一起盘点盘点,软件测试人员必须要会的软件:office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。配置管理工具,不管是以前的SVN还是现在流行的git总要会一个。远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去操作吧,如果你跑到机房去操作,那一定记得带台显示器去。碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?06 数据库不管是MySQL,还是Oracle,还是SQLServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是SQL语言总要会吧,谁让它们都认识SQL语言呢。SQL语言又会为DDL、DML、DQL、DCL。数据定义语言(DDL):用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。数据操作语言(DML):用于操作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。数据查询语言(DQL):用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。数据控制语言(DCL):用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。就算你说INSERT、UPDATE、DELETE语句都很简单,照着格式直接使用就行,那SELECT呢。SELECT语句不仅有简单查询,还有复杂查询。复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询。这些语句软件测试人员都要掌握吧。07 LINUXLinux做为做为服务器的操作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。那你就大错特错了。如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是BUG,如果是BUG,总还需要定位一下吧。如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。那这些命令软件测试人员总都要会吧。如果你说这些还都可以依靠开发和运维,那你就当我没说。08 编程语言既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。一般情况下都是选公司系统目前所用的语言。但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。09 行业软件测试有一条原则是:测试活动依赖于测试内容。那这个测试内容就是公司业务,在成为业务之前,俗称需求。经常在JD中看到有支付行业经验优先,有金融行业经验优先,有电信行业经验优先,有电商行业经验优化……为什么会这样呢?那是因为测试人员一定需要了解业务,熟悉业务。从事电信行业的测试人员需要掌握各类协议,比如HTTP协议、TCP/IP协议,还有可能需要熟悉交换机和路由器的原理。从事金融行业的测试人员需要熟悉各种会计知识。如果是测试嵌入系统的测试人员还需要了解硬件知识。 软件测试人员需要非常熟悉所测软件的业务,比谁都要熟悉。
第一阶段 测试基础测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。最好学到什么程度呢,最好是能够理解,并能够用自己的话给复述出来。毕竟面试初级测试的时候,问的问题都是从基础理论上进行考核的。第二阶段 工具学习软件测试的基础学完了过后,应该学习工具了。其实学工具真的很容易,所以大家不用去纠结工具的选择。把最基础的几个工具学习了就行了,以后用到什么工具就去学什么。下面我会列几个必学的工具,不用太精通,会用就行了。性能测试工具:loadrunner、jmeter。接口测试工具:postman抓包工具:fiddle数据库管理工具:Navicat项目/BUG管理工具:禅道、QC搜索工具: 百度、谷歌以上的这些工具都是纯图形化的,很好掌握,估计就性能测试工具稍微会费点时间。好了,学完了以上两个部分,恭喜你,你已经是一个出色的初级测试工程师了。接下来,你要考虑你的发展方向了。是成为一个自动化测试工程师呢?还是性能测试工程师呢?这个阶段,我们应该学习代码了,关于编程语言的选择,一般会选择Java或者python。还有数据库也是必须掌握的!不过不用像开发那样,学的那么深入,把基础的部分学完就行了。
⒈ 测试专业技能 测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。⒉ 软件编程技能软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能够编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。⒊ 网络、操作系统、数据库、中间件等知识与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。 数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MSSqlserver、Oracle等常见数据库的使用。
1、要有宽泛的计算机知识,掌握测试专业技能 2、思维要敏捷;3、语言表述要清晰;4、你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作 5、需要对数据库有较为清楚的认识,以及会编写数据库脚本

jmeter接口测试中遇到tcp协议的异步交易怎么去测试
下划线一般命名的时候会加一个下划线表示命名有两部分 row_max想表达的意思是 行最大你写成 rowmax 也是一样的 但是分隔了之后就看的十分显然一些。还有的不是用“_”下划线 而是用大小写 区分都是一样的。这些东西可以在变量的命名里找到。

本文由 在线网速测试 整理编辑,转载请注明出处。