软件测试-接口自动化测试-接口要素

学习笔记记录

一、HTTP接口测试要点

http接口组成

查看方式:接口文档,抓包

url地址:统一资源定位符,可以在网络上找到接口

参数:客户端的需求信息

返回值:本次接口请求,最终结果(文案提示,功能是否实现)

验证信息:会话管理,token管理(头部,参数)

二、调用一个接口

调用步骤:

        1.填写URL

        2、填写参数

        3、填写验证(如果需要)

        4、查看结果(结果可靠吗?)

代码编写(以百度IP为例,不需要验证)

import requests
res=requests.get('https://qifu-api.baidubce.com/ip/geo/v1/district?ip=113.32.83.134')
print(res.text)

结果展示:

代码编写(网上开源免费的接口网址-聚合数据[手机号码归属地]为例)

接口api:(参数登录后可以查看,每个账号的的APPKEY都是唯一的)

http://apis.juhe.cn/mobile/get
res=requests.get('http://apis.juhe.cn/mobile/get')
print(res.text)

结果展示:

从返回的数据中可以看到,我们缺少了KEY。

那么这个key去哪里找?这时我们需要去看接口文档,发现key确实在参数列表里,但是里面还有其他的参数是必须传递的,我们需要把必须传递的参数都填写上。

如何传递?通常使用字典传递。

代码编写:(记得params=params)

import requests
params = {
    "phone": "13429667914",  # 需要查询的手机号码
    "key": "0450f95d12c319657ee03f20b1979f4b",  # 应用APPKEY
}
res=requests.get('http://apis.juhe.cn/mobile/get',
                 params=params)
# 查看状态码,检查接口是否成功链接
print(res.status_code)
print(res.text)

结果展示:

三、传参方式(具体什么格式,通过抓包在headers下方content-Typec查看)

URL格式参数:

        在URL后面以?形式拼接

import requests
res=requests.get('https://qifu-api.baidubce.com/ip/geo/v1/district?ip=113.32.83.134')
#解码unicode-escape
print(res.content.decode('unicode-escape'))

        写成字典,用params=传递

import requests
params = {
    "phone": "13429667914",  # 需要查询的手机号码
    "key": "0450f95d12c319657ee03f20b1979f4b",  # 应用APPKEY
}
res=requests.get('http://apis.juhe.cn/mobile/get',
                 params=params)
# 查看状态码,检查接口是否成功链接
print(res.status_code)
print(res.text)

application/x-www-form-urlencoded格式参数(表单):

        data=字典(data=params)(主流)

        json=字符串(json=json.dumps(params))

application/json;(json格式):

        json=字典(json=params)(主流)

        data=字符串(data=json.dumps(params))

        输出时:print(res.json())

text/xml;字符串格式:

        data=字符串

        json=字符串

四、查看结果

结果是二进制。二进制又分为两种,一种是字符串,一种是文件。

字符串又分为几种,比如json,字符串,xml

最稳妥的方式是拿结果的二进制。(即:res.content)

然后对其进行编码。

看到b'开头,这是编好码的,可以对其进行解码。

print(res.content)
res_byte=res.content
print(res_byte.decode('utf8'))

如果解码后仍然发现还有\xe6\xb5\x99\xe6\xb1\x9f类似这种格式。

可以将utf8更改为unicode-escape

当然如果知道是什么格式就可以直接使用。

json:res.json()
字符串:res.text
xml :解析成文本,再用xml解析器解析

对于文件,比如说图片。

可以先拿到图片的二进制结果,然后写入一个新图片。

# 先拿到图片的二进制结果
img_content=res.content
# 写入到新建图片
f=open('./new.png',mode='wb')
f.write(img_content)
f.close()

如果是表格,就把png改为xlsx。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值