一、什么是接口(API)?
内部接口:开发人员自行开发,对自己的系统提供模块之间数据交互。
对安全要求不高,用户接触不到。
外部接口:
系统对外提供的服务接口(eg:银行提供接口给微信、支付宝等应用);
对安全非常重视,所以测试的覆盖率需达到极致。
总结:软件提供给外部的一种服务,主要用于交互数据。
二、接口本质
接口测试的本质—>测试接口(函数)是否能够正常实现数据交互、异常场景提示、权限控制(token)
三、接口返回数据格式
1、json:http、dubbo
返回数据常见规则:{error_code:错误码,message:错误码的中文说明,data:[]}
json数据详解:是一种数据格式,两种数据类型:
①键值对{key:value}
②列表[value1,value2,value3]
2、html:http
3、xml:webservice
四、jmeter和postman的相同点和区别?
①一般用作压力测试也可以用作接口测试,postman用作一般接口测试;
②jmeter没有工作空间的概念,直接就是测试计划,而postman组织方式比较轻量级,主要针对,单个http请求;
③jmeter接口类型restful和soap等,postman是http接口;
④jmeter和postman两个工具都可以设计全局和局部的变量;
⑤jmeter可以用Beanshell脚本进行流程控制,postman可以用JavaScript脚本进行流程控制;
你们公司如何做接口测试?
API文档分析
主要分析请求和响应
请求:请求url是否合理
请求头是否明确
请求方法是否合理
请求参数是否必填、含义、参数方式是否明确;
响应:响应状态码
响应数据格式
响应信息头
异常返回信息和错误代码是否合理
编写测试用例
测试环境和工具准备
执行测试用例
记录bug,并回归验证
输出测试报告
HTTP接口传递数据最常用的方式?
get方式是从服务器上获取数据,post方式是向服务器传递数据。
五、为什么要做接口测试?
接口测试是软件测试中的一个重要部分,目的是确保系统各个模块之间的数据传输和功能调用是否准确。
功能验证:接口测试可以验证不同组件之间的功能是否按照设计要求正常工作。通过模拟各种输入和操作,可以确保系统能够正确地处理和响应请求。
性能评估:接口测试可以帮助评估系统的性能,包括响应时间、并发处理能力和吞吐量等指标。通过模拟大量的请求和数据,可以检查系统在负载情况下的表现,并发现潜在的性能瓶颈。
安全性检查:接口测试可以揭示系统中的安全漏洞和风险。通过模拟恶意请求和注入攻击等情况,可以查找系统中的潜在安全漏洞,并及时修复它们。
依赖管理:在大型系统中,不同组件之间可能存在依赖关系。接口测试可以帮助识别和管理这些依赖,确保组件之间的正确集成和协同工作。
总之,接口测试对于确保系统的稳定性、可靠性和安全性非常重要。它可以帮助开发团队发现和解决潜在问题,并提高整个系统的质量。
六、 GET请求和POST请求的区别是什么?
GET请求参数是通过URL进行传递的,POST请求的参数包含在请求体当中。
GET请求比POST请求更不安全,因为参数直接暴露在URL中,所以,GET请求不能用来传递敏感信息。
GET请求在url中传递的参数是有长度限制的(在HTTP协议中并没有对URL的长度进行限制,限制是特定的浏览器以及服务器对他的限制,不同浏览器限制的长度不同。),POST对长度没有限制。
GET请求参数会完整的保留在浏览器的历史记录中,POST请求的参数不会保留。
GET请求进行url编码(百分号编码),POST请求支持多种编码方式。
GET请求产生的URL地址是可以被bookmark(添加书签)的,POST请求不可以。
GET请求在浏览器回退的时候是无害的,POST请求会.再次提交数据。
GET请求在浏览器中可以被主动cache(缓存),而POST请求不会,可以手动设置。