接口测试基础
Posted tongbaomami
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试基础相关的知识,希望对你有一定的参考价值。
接口测试:关心的只是数据,如果返回的是页面,这种不是接口, 需要http协议和json格式, 可以安装jsonview查看json格式
- 程序接口:也可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类,方法或函数,对于程序接口的测试,一般需要使用与开发程序接口相同的编程语言, 通过传入不同的参数, 来验证程序接口的功能。不能跨语言
- 协议接口测试:一般反映系统通过不同的协议来提供的接口,例如http/soap协议等,这种类型接口对底层代码做了封装,通过协议的方式 对外提供调用,因为不涉及到程序层面,所以,不受编程语言的限制,我们可以通过其它编程语言或工具对其进行测试。
接口可以是不同系统之间会需要接口(如天气接口,如不想自己开发这种功能 ,可以用气象服务部门的天气接口来实现),也可能是下层服务对上层服务的接口(功能内部的调用,编程语言和database之间, 需要驱动,这个驱动是提供了给编程语言去操作数据库的API,这个api就可以看做是接口。
还可以是服务与服务之间的调用,如抽奖接口,会去调用其它接口,如调用用户接口,
- 开发对应接口: (发布会的接口)
开发WEB接口一般会用到两个部分:http协议和json
a. 前端和后端一般分分离,这样后端开发可以不用精通前端技术,如html/javascript/CSS, 只专注于数据的处理, 对外提供API 接口
b. 前端的专业性越来越高,通过API接口获取数据,从而专注于页面的设计
c.前后端分离增加接口的应用范围,开发的接口可以应用到web页面上,也可以应用到移动app上。
- HTTP协议:
a.支持客户、服务器模式:简单快速,
b.灵活, 正在传输的类型同content-type 加以标记
c.无连接
d.无状态
一般开发接口都用api做为一级路径, e.g.: 127.0.0.1:8000/api/....
a. 创建添加发布会接口:add_event/:
可以加在urls.py里:
path(‘api/add_event/‘, views.add_event)
也可以在应用里添加二级路径: 在sign应用下创建一个python文件,命名为urls.py
那么在guest里的urls.py里就应该加上:
path(‘api‘, include(‘sign.urls‘))
在sign下面的urls.py里添加:
from diango.urls import path
from sign import views
urlpatterns = [
path(‘add_event/‘, views_api.add_event, name = ‘add_event‘)]
然后再创建一个views, 如views_api.py,创建一个add_event 函数,但返回要用jsonResponse(就是字典格式)
def add_event(request):
if request.methon ==‘POST‘:
eid = request.POST.get(‘sid‘, ‘‘)
name =request.POST.get(‘name‘, ‘‘)
.....把发布会的参数都加上
if eid==‘‘ or name ==‘‘ or ....:
return JsonResponse({"status":10021, "message":"参数为空"}) #这里的status可以随便命名,如1111, 2222
else:
return JsonResponse({"status":10031, "messag":"请求方法错误"})
如果是post请求,那么需要用接口测试工具: postman,可以模拟http调用
postman里请求方法选post,header可以不要,body很重要,需要把参数都传过来,然后点send。
Get请求的话是在?后面加参数.
Jmeter:接口测试工具:
- 添加线程组
- 可以加断言
3.可以添加配件里:用户定义变量, 用的时候加${url},当url变的时候,可以只改变量即可,不用改每一条用例
robotframework:接口测试工具: (python 的库python -m pip install robotframework)
C:python36Scriptspyrob.bat 运行
后缀:.robot
脚本分两部分:settings and test case (可以参照官网)
settings:相当于导包
如: Library SeleniumLibrary
Test case:
test_hello
log hello robot framework #(log相当于python里的print)
python -m robot hello.robot(可以解除警告)
接口的安全机制:
不可能随便让人使用,所以要有安全机制, 一般三种方法:
- 用户认证
POSTMAN里就有authorization:可以选 Basic auth, - 数字签名
鉴权:需要加时间戳,这样即使被黑客盗取,如果超过60秒服务器就会返回超时,这样可以防止被黑客使用接口。
防止篡改 - 加密AES
以上是关于接口测试基础的主要内容,如果未能解决你的问题,请参考以下文章