接口
- 项目内部接口
- 项目外部接口
- 软件接口、服务器接口
- 硬件接口
- Restful风格的URI
- Restful中每个资源都有URI(统一资源顶定位符)标识
- 统一接口
- 客户端通过GET/POST/PUT/DELETE等http方法对资源进行增删改查操作
- 无状态
HTTP协议详解
- 支持客户端/服务器模式
- 客户向服务器请求时,只需传送请求方法和 路径
- HTTP允许传送任何类型的数据 对象
- 每次连接只处理一个请求
- 无状态协议
- URL
- http://host[":"port][abs_path]
- 请求
- 请求行
- 消息报头
- 响应行
- 响应
- 状态行
- 消息报头
- 响应实体
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
接口测试
# get请求
# 导包
import requests
# 获取请求地址
url = 'http://apis.juhe.cn/simpleWeather/query'
# 获取请求参数
para = {'city': '杭州', 'key': '221ec2c9d854d2859310ea808cb760fd'}
# 发送get请求
r = requests.get(url)
# 获取响应数据
print(r.status_code)
print(r.json())
获取excel表数据:
# 导包
import unittest
from Commonlib.ReadExc import Read_Ex
class Test_Add(unittest.TestCase):
def setUp(self):
print("开始")
def tearDown(self):
print("结束")
def test01(self):
r =Read_Ex()
data = r.read_excel()
for i in data:
self.assertEqual(int(i['a'])+int(i['b']),int(i['c']))
# a = 1
# b = 1
# self.assertEqual(2,a+b)
if __name__ == '__main__':
unittest.main()
import requests
import unittest
from Commonlib.ReadExc import Read_Ex
class Test_Tq(unittest.TestCase):
def setUp(self):
print("开始")
def tearDown(self):
print("结束")
def test01(self):
res1 = Read_Ex()
data = res1.read_excel()
for i in data:
#接口地址
url ="http://v.juhe.cn/weather/index"
# 构造数据
para ={"cityname":i["cityname"],"key":i["key"]}
res = requests.get(url,params=para)
r = res.json()
# r["reason"]
# self.assertEqual(r["reason"],"查询成功!")
self.assertEqual(r["error_code"],int(i["exp"]))
if __name__ =='__main__':
unittest.main()
jmeter接口自动化
- 安装Java
- 安装jmeter
- 添加‘线程组’
- 添加‘HTTP请求’
- 添加‘查看结果树’
- 添加‘响应断言’
- 添加‘断言结果’
----正则表达式提取器:
– 内容:左右边界的内容提取
– 模板:一个参数,$1$
;两个参数,$2$
;n个参数,$n$
– 匹配:0,随机取;1,取第一个…n取第n个;-1,取全部
– 缺省值:数据为空,给默认值