接口自动化测试文档解析
- 格式:docx
- 大小:61.13 KB
- 文档页数:15
接口自动化测试方案第1篇接口自动化测试方案一、前言随着信息化建设的不断深入,接口在各个系统间的数据交互中扮演着举足轻重的角色。
为确保接口稳定、可靠且高效地运行,降低系统上线后因接口问题导致的故障风险,提高软件质量,特制定本接口自动化测试方案。
二、目标1. 提高接口测试的效率,降低人工测试成本。
2. 实现对接口的全面覆盖,确保接口的稳定性和可靠性。
3. 建立可持续集成的自动化测试体系,为项目的快速迭代提供支持。
三、测试范围1. 系统内部接口:包括各模块间的数据交互接口。
2. 系统外部接口:包括与第三方系统或服务的接口。
3. 数据库接口:涉及数据库操作的接口。
四、测试工具及环境1. 测试工具:JMeter、Postman、Swagger等。
2. 测试环境:开发环境、测试环境、预生产环境、生产环境。
3. 数据库:MySQL、Oracle、SQL Server等。
五、测试策略1. 功能测试:验证接口的功能是否符合需求规格说明书。
2. 性能测试:评估接口在高并发、大数据量下的性能表现。
3. 安全测试:检查接口是否存在安全漏洞,如SQL注入、越权访问等。
4. 兼容性测试:验证接口在不同操作系统、浏览器、数据库等环境下的兼容性。
5. 异常测试:模拟各种异常场景,检查接口的容错性。
六、测试流程1. 需求分析:分析接口的业务需求,明确接口的功能、性能、安全等要求。
2. 测试设计:根据需求分析,编写接口测试用例。
3. 测试开发:搭建测试环境,编写自动化测试脚本。
4. 测试执行:在各个测试环境中执行自动化测试。
5. 结果分析:分析测试结果,定位问题原因,反馈给开发人员。
6. 跟踪验证:验证开发人员修复的问题,确保问题得到解决。
7. 测试报告:输出测试报告,包括测试覆盖率、通过率、问题列表等。
七、测试用例设计1. 根据接口文档,设计测试用例,包括正常场景、异常场景。
2. 测试用例应涵盖接口的功能、性能、安全等各个方面。
Page 1 of 1
Tencent and the Tencent logo are registered trademarks of Tencent Corporation. Copyright © 2010 Tencent. All rights reserved. 第三方应用自动化测试接口需求说明模版
说明:该文档由TX 测试人员填写,交由第三方公司来开发接口。
蓝色字体为说明部分,最后可以用接口功能标题生成目录,方便点击跳转到对应说明。
接口是否需要写死固定的几个openid ,请和PM 商讨并将结果告知第三方公司。
一.接口功能
1.优先级
(如:P0,P1,P2...,P0是表示接口的紧急度最高,依次类推)
2.接口功能详细说明
(这里尽量可以将接口作用描述的更详细一些,或者电话和第三方负责同事说明一下)
3.接口命名以及请求的参数说明
(该项非必填,一般是由第三方公司来定义,如果觉得有必要,也可以由TX 测试人员来定义,具体可以将接口参数以及取值列举说明一下)
接口命名
参数名称 参数功能 参数取值对应意义 举例:steal.cgi
type 偷取方式 1,表示单个偷
2,表示一键偷
...... ...... ......。
接口自动化测试设计文档管理信息表主题接口自动化测试版本TIBCO_Adapter_V1.0内容设计关键字接口参考文档单元测试创建时间2008-03-21创建人冯昌建职位SDETest主管最新发布日期2008-04-02(一)测试背景概述新项目结构大致是:即产品1和产品2为待测试对象,抽象出来可以归结为【http json协议接口测试】与【http web功能测试】。
其中【http web功能测试】针对未曾接触的一种数据库,还包含了大量数据库和SQL 级别的专有操作测试内容,此处不予讨论。
测试对象无论是由C/C++还是Java还是JS/Html实现,对于协议测试和功能测试(白盒测试和单元测试另当别论),都不需要深入了解该语言,熟悉任一种高级语言(最好还有一种脚本语言)+自动化思维意识+快速学习能力,完全能实施测试自动化策略。
网上查了一下:JSON(JavascriptObjectNotation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。
常应用于http通信和数据传输,应用如Apache开源搜索引擎ElasticSearch等。
JSON建构有两种结构:1.“名称/值”对的集合(A collection of name/value pairs)。
不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。
2.值的有序列表(An ordered list of values)。
在大部分语言中,它被理解为数组(array)。
*Linux C/C++单元测试和覆盖率统计参见:/w565911788/article/details/7617099即使对上面一无所知,先来分析一下【http json协议接口】的特点。
(二)测试需求分析1.Web页面(即产品2)HTTP请求数据包(post/put)格式如:POST‘http://home/cm_api’-d‘{"task":"login","token":"ae873897a0a9a2afb9bb12a49c4237744a82ea77049df67c9b58d7acc5c0c7527926f 07dd201b6aa","id":"admin","password":“123456","clientver":"8.4"}‘POST‘http://home/cm_api’-d‘{"task":"startinfo","token":"ae873897a0a9a2af11077f40cf303d7406ec4d40b90b3a041b8a4edfd63d0fbe7926f0 7dd201b6aa"}’2.Web Service(即产品1)响应数据包格式,除以下其余未知:(1)格式错误,不响应;(http json协议层判定)(2)token(每个用户每次登录时取得,唯一)错误或者连接、数据库等其他问题,响应status:failure(3)token正确,其他正确,响应status:success如:{"__EXEC_TIME":"1ms","note":"none","status":"success","task":"authenticate",“token”:“ae873897a0a9a2afdb676eefe4e864e2b0e3abb07cd73cf0944e77d6c792b1aa7926f07dd201b6aa”}–登录成功,响应status:success,并取得token值{"note":"Request is rejected due to invalid token.Pleasereconnect.","status":"failure",“task”:“startinfo”}–token错误,响应status:failure3.接口会扩展,增加或改变(数百个)。
接⼝测试需求⽂档分析以及测试⽤例⼀、接⼝测试的依据主要是接⼝⽂档,接⼝⽂档的准确性⾄关重要。
接⼝⽂档的内容基本包括有:接⼝名称接⼝类型输⼊参数:输⼊参数⼀般包括,每个参数名,参数类型,参数业务含义,是否可为空,参数单位输出结果:返回状态的取值范围及其业务含义⼆、接⼝⽤例设计主要以下⼏个⽅⾯进⾏设计:1、输⼊参数主要从以下⼏个⽅⾯设计:a、必填项校验b、参数长度校验c、参数值的有效性校验d、参数组合校验e、参数默认值校验f、某些参数具有特定的⽣成规则要单独针对⽣成规则设计⽤例2、接⼝逻辑设计:分⽀覆盖–路径覆盖–场景覆盖,结合实际业务场景a、整理画出对应流程图b、依据路程图中的分⽀分别设计,不同分⽀不同的场景,这⾥就要把异常的场景考虑进去;如接⼝超时,接⼝异常,接⼝请求成功或失败,成功后怎么处理,失败后流程是否继续执⾏,失败后的数据怎么处理;以打款接⼝为例:打款结果有打款成功或打款失败,成功后怎么处理,需要回写打款成功状态,失败后怎么处理,也需要回写失败状态,失败后的数据可以操作退回,也可以操作重新出款等等;c、测试逻辑设计完成后要想⼀想不同的业务场景怎么去测试,需要哪些⼈员协助,如接⼝超时怎么去测试,请求重复怎么去测试,请求并发怎么去测试3、输⼊结果:正常输出和异常输出,常⽤的⽅法有错误推断法(列举出程序中可能存在的错误或者异常,根据他们选择测试⽤例)a、以上都完成后,要结合实际的业务场景去掉冗余的⽤例(即实际业务场景不存在的流程或者输⼊数据)b、如果业务流程涉及到状态转换,要单独设计⽤户—⽅法:状态转换图;c、涉及到多个不同⾦额或者⼿续费的计算,可能还会⽤到正交实验法去设计⽤例;d、另外⽤例设计中还应当包含异常流程中产⽣的异常数据的处理流程;通常所说的补偿机制,这块流程能⼤⼤的减轻⼈⼯运营的⼯作量,当然,这需要在做系统设计的时候就需要把这部分考虑进去。
接口测试文档模板一、概述。
接口测试是软件测试中的一项重要内容,通过对软件接口进行测试,可以验证接口的功能、性能、安全性等方面,保证软件系统的稳定性和可靠性。
本文档旨在提供接口测试的标准模板,帮助测试人员进行接口测试工作。
二、测试目的。
接口测试的主要目的是验证接口的正确性、稳定性和安全性,保证系统的正常运行。
具体包括以下几个方面:1. 验证接口的输入和输出是否符合预期;2. 检查接口的性能和并发能力;3. 测试接口的安全性,防止恶意攻击和数据泄露;4. 确保接口的稳定性,避免因接口问题导致系统崩溃。
三、测试范围。
接口测试的范围包括但不限于以下几个方面:1. 接口的功能测试,验证接口的各项功能是否符合需求;2. 接口的性能测试,测试接口的响应时间、并发能力等性能指标;3. 接口的安全测试,检查接口的安全性,防止恶意攻击和数据泄露;4. 接口的稳定性测试,验证接口的稳定性,避免系统崩溃和异常情况。
四、测试环境。
接口测试需要在特定的测试环境中进行,包括以下几个方面:1. 硬件环境,服务器、网络设备等硬件设备;2. 软件环境,操作系统、数据库、中间件等软件环境;3. 测试工具,接口测试工具、性能测试工具等;4. 测试数据,测试所需的数据资源。
五、测试方法。
接口测试可以采用以下几种测试方法:1. 黑盒测试,只关注接口的输入和输出,验证接口的功能是否符合预期;2. 白盒测试,了解接口的内部实现,验证接口的逻辑正确性;3. 性能测试,测试接口的响应时间、并发能力等性能指标;4. 安全测试,检查接口的安全性,防止恶意攻击和数据泄露。
六、测试用例。
接口测试需要编写详细的测试用例,包括以下几个方面:1. 测试场景,描述测试的具体场景和测试目的;2. 测试数据,指定测试所需的数据资源;3. 预期结果,描述测试的预期结果;4. 测试步骤,详细描述测试的具体步骤。
七、测试报告。
接口测试完成后,需要编写测试报告,包括以下几个方面:1. 测试概况,描述测试的整体情况和结果;2. 测试环境,列出测试所使用的硬件环境、软件环境和测试工具;3. 测试用例执行情况,描述测试用例的执行情况和测试结果;4. 问题记录,记录测试过程中发现的问题和解决情况;5. 测试总结,总结测试的经验和教训,提出改进建议。
2.2 常用接口1. http接口走http协议,通过路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。
2. webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml格式的。
2.3 http登录接口文档范例2.4 获取接口关键信息1. 开发提供接口文档/接口规范(正规流程),如上接口文档范例;说明:如果没有接口规范/文档(不正规流程),需要使用抓包工具,如Fiddler、>wireshark、httpwatch或直接在谷歌或火狐浏览器F12等获取接口关键信息;2. 接口关键信息:协议类型:http/htts请求URL/IP:如:网址:https:///;ip:127.0.0.1端口:http默认端口:80,https默认端口:443或自定义端口请求方式:如post/get/put/delete表头信息:如内容类型Content-Type:application/json请求参数:注意参数的传参类型如json;参数的属性如名称、类型、是否必填,参数的个数;响应结果:注意输出内容的类型如json响应状态:响应状态码需特别注意,意因为做接口测试有时需覆盖所有状态返回状态描述1xx请求已被成功接收、理解、接受2XX成功,操作被成功接收并完成响应3xx重定向--要完成请求必须进行更进一步的操作4xx客户端错误--请求有语法错误或请求无法实现5xx服务器端错误--服务器未能实现合法的请求三、什么项目适合做接口自动化测试1. 任务需求明确,不会频繁变动2. 项目周期较长,回归测试频繁(>=5次),开展自动化确实能提升测试效率及质量3. 产出的效益高于投入4. 测试预留的时间比较充裕四、接口自动化关键点1. 开发测试脚本需充分考虑脚本的复用性2. 脚本与数据分离五 什么时候可以做接口自动化1. 需求评审完毕,接口需求明确稳定2. 版本升级项目发布之前的全流程回归测试六、与开发同步进行接口用例脚本开发软件开发未完成,接口还无法调试,测试如果需要同步开发接口,需根据接口文档规范,利用MOCK SERVER等接口模拟工具模拟接口,从而进行接口自动化用例调试开发七、接口自动化测试的流程业务流程1. 评估投入与收益比,是否需要进行接口自动化2. 根据项目组成员的能力及项目属性,选取适当的自动化工具或开发语言3. 分析业务,在功能测试用例提取主业务场景4. 先开发一个主业务场景脚本,根据需要补充其他业务场景开发流程1. 提取脚本可重复项,封装简化脚本,利用公共类或公共函数等方法,提高脚本的利用率、可读性及可维护性2. 提取脚本中可变的参数,修改成变量3. 利用csv、Excel、ini、数据库、yaml等参数化数据信息,使业务与数据分离,实现数据驱动测试4. 引入日志,利于运行调试发现问题5. 添加断言并生成可视化报告6. 持续基础Jenkins,实现自动打包,按时发布并执行,生成结果邮件发送 注:如果需要做接口测试平台还需要用到前端知识与python框架知识。
接口测试的总结文档第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。
但该部分只交代了怎么做和如何做?并没有解释为什么要做?第二部分:主要介绍为什么要做接口测试,并简单总结接口持续集成和接口质量评估相关内容。
第一部分:首先,在做接口测试的过程中,经常有后端开发会问:后端接口都测试什么?怎么测的?后端接口测试一遍,前端也测试一遍,是不是重复测试了?于是,为了向开发解释上述问题,普及基本的测试常识,特意梳理了接口测试的相关内容以及其与前端测试的区别,使开发团队与测试团队在测试这件上达成基本的共识,提高团队协作效率,从而更好的保证产品质量。
然后,我们试着回答上面的问题:问题1.1、后端接口都测试什么?--回答这个问题,我们可以从接口测试活动内容的角度下手,看一下面这张图,基本反应了当前我们项目后端接口测试的主要内容:问题1.2、我们怎么做接口测试?--由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。
工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
问题2、后端接口测试一遍,前端也测试一遍,是不是重复测试了?--回答这个问题,我们可以直接对比接口测试和app端测试活动的内容,如下图为app测试时需要覆盖或考虑内容:从上面这两张图对比可以看出,两个测试活动中相同的部分有功能测试、边界分析测试和性能测试,其它部分由于各自特性或关注点不同需要进行特殊的测试,在此不做讨论。
接下来我们针对以上三部分相同的内容再进行分析:1、基本功能测试:由于是针对基本业务功能进行测试,所以这部分是两种测试重合度最高的一块,开发同学通常所指的也主要是这部分的内容。
2、边界分析测试:在基本功能测试的基础上考虑输入输出的边界条件,这部分内容也会有重复的部分(比如业务规则的边界)。
自动化测试中的接口测试与接口自动化测试在软件开发领域,随着技术的发展,软件测试也变得越来越重要。
其中,接口测试是软件测试中的关键环节之一。
而随着自动化测试的兴起,接口自动化测试成为了大多数软件开发团队不可或缺的一部分。
本文将深入探讨自动化测试中的接口测试以及接口自动化测试的重要性和实施方法。
一、接口测试的定义和作用接口测试是指对软件系统中的接口进行功能验证和性能测试,以确保接口之间的相互交互与数据传输正常。
接口测试可以帮助开发团队及时发现并修复接口问题,减少软件开发过程中的错误和风险,提高软件系统的稳定性和可靠性。
二、接口测试的重要性1. 确保系统功能的一致性:接口测试可以验证各个模块之间的数据传输是否正常,确保系统功能的一致性和完整性。
2. 提高软件系统的稳定性:通过接口测试,可以及时发现和解决接口问题,减少系统崩溃和故障的发生,提高软件系统的稳定性。
3. 降低软件开发成本:接口测试可以及早发现和解决问题,减少后期修复的成本,降低软件开发成本。
4. 提高软件系统的可维护性:通过接口测试,可以确保接口不受外界因素的干扰,提高软件系统的可维护性和可扩展性。
三、接口自动化测试的定义和优势接口自动化测试是指利用自动化测试工具和脚本对系统接口进行测试和验证,以提高测试效率和质量的方法。
相比于传统的人工接口测试,接口自动化测试具有以下优势:1. 提高测试效率:接口自动化测试可以在短时间内运行大量的测试用例,快速发现问题,并提高测试效率。
2. 提高测试覆盖率:接口自动化测试可以模拟各种各样的测试场景,对系统接口的覆盖率更全面,更准确。
3. 便于回归测试:接口自动化测试可以快速执行多次回归测试,确保软件系统在更新、修改后仍然能够正常运行。
4. 降低人力成本:通过接口自动化测试,可以减少人工测试的工作量,降低人力成本,提高工作效率。
四、接口自动化测试的实施方法1. 选择合适的自动化测试工具:在进行接口自动化测试之前,需要选择一款适合项目需求的自动化测试工具,如Selenium、JMeter等。
RobotFramework之接⼝⾃动化流程测试Robot Framework之接⼝测试⾃动化(数据准备、数据脚本实现、实现层和断⾔层、测试报告) 脚本⽤例通⽤模板设计单接⼝⽤例测试数据准备,已经取出了该接⼝的所有正向和逆向接⼝测试⽤例,那现在如何把数据和⽤例结合起来,进⾏断⾔,判断响应回来的结果与断⾔结果是否保持⼀致。
如果保持⼀致,接⼝测试成功,如果保持不⼀致,判断出错的原因。
⼀个测试⽤例对应⼀个接⼝,⼀个接⼝对应⼀个excel⽂件对应的sheet获取⽤例数据。
⽬的是便于后期维护。
脚本通⽤测试⽤例主要更改的地⽅包括:⽂件名称、sheet名称、请求类型(Get/Post)、请求类型后参数调⽤(⽐如json、param、data)、断⾔key的验证(⽐如success、description)等信息。
单接⼝测试-通⽤脚本测试⽤例:#分别获取来源数据excel表名、对应的sheet表。
红⾊的都是变量,需要根据⾃⼰的项⽬进⾏变更和修改。
${dir} Set Variable ⽤例数据excel地址${sheetname} Set Variable ⽤例数据excel中sheet表名称-接⼝名称Set Global Variable ${dir}Set Global Variable ${sheetname}获取⽤例表信息: FOR ${row} IN RANGE 2 ${rowCount}\ ${action} Read Cell Data By Coordinates ${sheetname} 1 ${row}\ run keyword if'${action}'=='N' Continue For loop\ Set Global Variable ${row}\ 获取单个⽤例参数\ Create Session api ${host}\ ${res} Get(或Post) Request api ${uri} params=${参数变量}\ ${responsedata} to json ${res.content}\ ${assert} get from dictionary ${responsedata} msg\ Should Be Equal ${assert} @{ConfPara}[2]查询分页,从excel中获取数据脚本⽤例通⽤模板设计主要是针对excel中取数据,通过调⽤关键字去操作。
接口自动化测试用例案例全文共四篇示例,供读者参考第一篇示例:接口自动化测试是指通过自动化测试工具对接口进行测试的过程。
在现代软件开发中,接口自动化测试已经变得越来越重要,因为它可以帮助开发人员及时发现并解决接口问题,确保系统稳定性和可靠性。
接口自动化测试的用例设计是其中的重要环节,本文将介绍一些接口自动化测试用例案例,帮助读者更好地理解和应用接口自动化测试。
1. 测试接口的响应时间在接口自动化测试中,测试接口的响应时间是非常重要的一个指标。
如果接口响应时间过长,可能会影响用户体验,甚至导致系统故障。
我们可以设计一个用例来测试接口的响应时间,例如:发送一个请求到接口,并记录下请求发送时间和接口返回时间,计算二者之间的时间差,从而评估接口的响应时间是否在可接受范围内。
2. 测试接口的数据一致性另一个重要的接口自动化测试用例是测试接口的数据一致性。
在现代系统中,不同的模块之间经常需要相互交互数据,如果数据一致性出现问题,可能会导致系统功能异常。
我们可以设计一个用例来验证接口返回的数据是否与预期数据一致,例如:发送一个请求到接口,并比对返回数据与预期数据是否一致,从而检查接口的数据一致性。
3. 测试接口的安全性在接口自动化测试中,测试接口的安全性是至关重要的一环。
如今,网络攻击日益猖獗,系统的安全性问题已经成为软件开发中的一大难题。
我们可以设计一个用例来测试接口的安全性,例如:发送一个恶意请求到接口,验证系统是否能够正确地拦截和处理恶意请求,从而检查接口的安全性。
通过以上几个接口自动化测试用例案例的介绍,我希望能帮助读者更好地理解和应用接口自动化测试,提高软件开发质量和效率。
接口自动化测试是现代软件开发中不可或缺的一环,希木读者能够认真学习和应用接口自动化测试技术,共同推动软件开发行业的发展。
第二篇示例:接口自动化测试用例案例随着互联网技术的发展,越来越多的软件系统采用了分布式架构,不同的模块之间通过接口进行通信。
I.背景介绍1.简介功能测试、性能测试、GUI自动化回归测试已经能够满足我们的测试需求,保证网站质量,而随着产品功能越来越多、系统架构越来越复杂、新人越来越多,一些预想不到的缺陷出现在我们面前,我们必须要寻找一种更加有效的测试方法来适应当前的变化,保证产品的质量。
因此接口测试应运而生。
对于Web接口应用,包含浏览器与服务器交互的HTTP协议的接口和webService接口,软件测试人员在日常的测试工作中,需要大量的手动操作来验证接口的功能。
开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证。
系统维护人员也需要经常访问其应用,以确保系统的正常运行。
如果某系统的接口较多,功能较为复杂,如上所述的这些操作就需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率。
在这里,我们将介绍如何使用HttpClient框架完成接口自动化测试。
2.web接口自动化测试如今,大多数的应用软件是基于Web的应用程序并通过浏览器展示给用户并与之进行交互。
不同公司和机构组织都需要测试这些应用程序的有效性。
在一个高度交互性和响应的软件时代,许多组织及团队倾向于运用敏捷开发理论,自动化测试一定程度上成为了敏捷开发流程中不可或缺的手段。
所谓自动化测试,就是执行自动测试工具或者用某种程序设计语言编写程序,控制被测软件中的各种模块,模拟手动测试步骤,完成测试的过程。
测试自动化有很多优点,比如:频繁快速的迭代回归、高效的测试反馈、一致与重复性的执行、化繁为简的形式、弥补手工测试的可能遗漏缺陷等。
目前也有许多商业和开源的软件,可辅助面向Web接口自动化测试,如:HttpClient、HttpUnit、HtmlUnit、JwebUnit等。
HttpClient是一个功能丰富支持HTTP协议的客户端编程工具包,能够很好满足我们对接口的自动化测试。
II.协议请求1.HTTP协议HTTP协议即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
●请求信息请求行:例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
请求头:例如Accept-Language: en。
空行可选消息体:请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。
空行内必须只有<CR><LF>而无其他空格。
在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。
●请求方法HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URL制定的资源不同操作方式。
比较常用的方法有HEAD、POST、GET方法。
HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。
这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。
POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
数据被包含在请求体中。
POST请求可能会导致新的资源的建立和/或已有资源的修改。
GET:请求获取Request-URL所标识的资源。
HEAD方法和GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息时相同的。
利用这个方法,不必传输整个资源内容,就可以得到Request-URL 所标识的资源信息,该方法常用于测试连接的有效性,是否可以访问,以及最近是否更新。
在本文使用的接口自动化框架中,主要使用POST和GET方法发送请求,下面对这两种方法简单做一下比较:1、GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456。
POST方法是把提交的数据放到HTTP协议包的Body中。
2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。
3、GET方式提交数据,会带来安全问题,比如一个登陆页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人访问这台机器,就可以从历史记录获得该用户的账号和密码。
●响应信息在接收和解释请求消息后,服务器返回一个HTTP响应信息。
HTTP响应也是由三个部分组成,分别是:状态行、响应头信息和响应正文。
状态行:包含HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器返回的响应状态码;Reason-Phrase表示状态代码的文本描述。
响应头信息:包括通用头、请求头、响应头和实体头四个部分。
(具体内容可以去网上查阅相关内容)响应正文:响应正文就是服务器返回的资源的内容。
2.Soap协议接口自动化框架测试中,有些模块之间采用了Soap协议的请求方式,本节我们对Soap协议进行简单的介绍。
Soap协议即简单对象访问协议,是一种轻量的、简单的、基于XML(标准通用标记语言的一个子集)的协议,它被设计成WEB上交换结构化和固化的信息。
Soap使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同的操作环境中的分布式对象。
●Soap协议包含四部分封装:定义一个框架,该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必选的。
编码规则:定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
RPC表示:定义了用于表示远程过程调用和应答的协定。
绑定:定义了一种使用底层传输协议来完成在节点间交换封装的约定。
SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/ 应答的模式。
所有的SOAP消息都使用XML 编码。
一条SOAP消息就是一个包含有一个必需的SOAP 的封装包,一个可选的SOAP 标头和一个必需的SOAP 体块的XML 文档。
把SOAP 绑定到HTTP 提供了同时利用SOAP 的样式和分散的灵活性的特点以及HTTP 的丰富的特征库的优点。
协议结构Soap消息格式:<SOAP-ENV:Envelope><SOAP:HEADER>……</SOAP:HEADER><SOAP:Body>……</SOAP:Body></SOAP-ENV:Envelope>III.H ttpClient1.简介HTTP 协议可能是现在Internet 上使用得最多、最重要的协议了,越来越多的Java 应用程序需要直接通过HTTP 协议来访问网络资源。
虽然在JDK 的java net包中已经提供了访问HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。
HttpClient 是Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持HTTP 协议最新的版本和建议。
HttpClient 已经应用在很多的项目中,比如Apache Jakarta 上很著名的另外两个开源项目Cactus 和HTMLUnit 都使用了HttpClient。
现在HttpClient最新版本为HttpClient 4.3 (GA) ,在接口自动化测试框架中我们使用的版本为HttpClient 4.2.5。
2.安装在介绍HttpClient的功能之前,首先需要安装好HttpClient。
◆HttpClient 可以在/commons/httpclient/downloads.html下载。
◆HttpClient 用到了Apache Jakarta common 下的子项目logging,你可以从这个地址/site/downloads/downloads_commons-logging.cgi下载到commonlogging,从下载后的压缩包中取出commons-logging.jar 加到CLASSPATH 中。
◆HttpClient 用到了Apache Jakarta common 下的子项目codec,你可以从这个地址/site/downloads/downloads_commons-codec.cgi 下载到最新的common codec,从下载后的压缩包中取出commons-codec-1.x.jar 加到CLASSPATH 中。
3.功能介绍HttpClient 提供的主要的功能如下,要知道更多详细的功能可以参见HttpClient 的主页。
◆实现了所有HTTP 的方法(GET,POST,PUT,HEAD 等)◆支持自动转向◆支持HTTPS 协议◆支持代理服务器等4.基本功能使用●GET方法1、创建HttpClient的实例。
HttpClient httpClient = new HttpClient();2、创建GET连接方法的实例,在这里使用HttpGet方法。
在HttpCet的构造函数中传入待连接的地址。
HttpGet get = new HttpGet(url);3、调用第一步创建好的实例的execute方法来执行第二步中创建好的method实例。
HttpResponse httpResponse = httpClient.execute(get);4、读取response。
从返回的response中获取状态码、响应正文等信息。
5、释放连接。
client.getConnectionManager().shutdown();6、对得到后的内容进行处理。
●POST方法POST方法用来向项目的服务器发送请求,要求它接受被附在请求后的实体,并且把它当作请求队列中请URL所指定资源的附加新子项。
调用HttpClient中的HttpPost方法与HttpGet方法类似,除了设置HttpPost 的实例与HttpGet有些不同之外,剩下步骤相同。
1、创建HttpClient的实例。
HttpClient httpClient = new HttpClient();2、创建POST连接方法的实例,在这里使用HttpPost方法。
在HttpPost的构造函数中传入待连接的地址。
HttpPost post= new HttpPost(url);3、给post实例填充表单的值。
例如一个登录接口,需要id和passwdNameValuePair[] data = { new NameValuePair("id", "youUserName"),newNameValuePair("passwd","yourPwd") };4、调用第一步创建好的实例的execute方法来执行第二步中创建好的method实例。