我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

接口测试_20210318_代超

[复制链接]
9075学员认证 发表于 2021-3-18 20:03:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1.使用Python-requests包进行接口测试# 加载包
import requests
# 百度搜索的接口,搜索的内容为requests
url = "http://www.baidu.com/s?wd=requests"
# 发送请求,将服务器返回的响应放到变量r中
r = requests.get(url)
# 打印文本格式的响应
print(r.text)
# 对结果进行断言,判断关键字在不在结果中
# assert "Requests: HTTP for Humans™" in r.text
# 对金融项目注册接口的测试
# get请求的参数拼接到URL后面 ?key=value&key=value&key=value 的格式
url = "http://192.168.2.36:8089/futureloan/mvc/api/member/register?mobilephone=12345&pwd=12345"
r = requests.get(url)
print(r.text)
print(r.json())  # 如果响应体是json格式的内容,使用r.json()
print(r.json()['code'])  # r.json()后可以当做字典使用
assert r.json()['code'] == "20108"
assert r.json()['msg'] == "密码长度必须为6~18"

# get请求的参数,使用params 传递
url = "http://192.168.2.36:8089/futureloan/mvc/api/member/register?"
cs = {
    "mobilephone": "18220820775",
    "pwd": "12345",
    "regname": "hello"
}
# params 参数不能写错,只能是requests中定义好的参数名
r = requests.get(url, params=cs)
print(r.text)
assert r.json()['code'] == "20108"
assert r.json()['msg'] == "密码长度必须为6~18"
print("状态码", r.status_code)
print("状态原因", r.reason)
print("响应头", r.headers)
print("cookies", r.cookies)
print("文本格式的响应体", r.text)
print("请求头", r.request.headers)
# 心知天气查询接口的测试
url = "https://api.seniverse.com/v3/weather/now.json?key=Sh-LsrOsCyo4vp8Tp&location=xian"
r = requests.get(url)
print(r.json())
# 西安
print(r.json()['results'][0]['location']['name'], end = "当前的温度:")
# 温度
print(r.json()['results'][0]['now']['temperature'])
# 获取用户列表
url = "http://192.168.2.36:8089/futureloan/mvc/api/member/list"
r = requests.get(url)
print(r.json())
print(r.request.headers)  # {'User-Agent': 'python-requests/2.25.1'
# 设置 User-Agent , 伪装成是浏览器发的请求
hds = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"
}
r = requests.grinet(url, headers=hds)
print(r.json())
print(r.request.headers)
2.用requests 发送 post 请求    1.data传参,传的是表单格式的参数
    2.json传参,传的是json格式的参数
   具体用data还是json传参,要看接口是如何实现的
金融登录接口url = "http://192.168.2.36:8089/futureloan/mvc/api/member/login"
cs = {
    "mobilephone": "18220820775",
    "pwd": "123456789",
}
# 用data传参
r = requests.post(url, data=cs)
print(r.text)
# 请求头中,'Content-Type': 'application/x-www-form-urlencoded'
print(r.request.headers)

# 用json 传参
r = requests.post(url, json=cs)
print(r.text) # 手机号码不能为空,这个接口不支持用json 传参,参数未识别出来
# 请求头中,'Content-Type': 'application/json'
print(r.request.headers)
3.接口测试的网站, 用户发送请求,该网站把收到的请求
# 组装成json格式的响应,返回给用户
# /post  是post方法
# /get  是get方法
# delete 是delete 方法
url = "http://www.httpbin.org/post"
cs = {
    "user": "admin",
    "email": "123456@qq.com"
}
path = "c:/test.txt"
with open(path, mode='r') as f :
    fs = {
        # "files" 上传接口的参数名,是接口定义的
        "files1": (path, f),  # 二元组: (文件名称,文件对象)
        "files2": (path, f, "text/plain")  # 三元组文件名,文件对象,文件类型)
    }
    r = requests.post(url, data=cs, files=fs)
    print(r.text)
4.手动设置Cookie
# 没有登录的情况下,访问接口,会跳转到登录页面
url = "https://www.bagevent.com/account/dashboard"
r = requests.get(url)
print(r.text)

# 使用界面登录后,服务器返回的cookie信息,访问该接口,返回登统计页面录后的
hds = {
    "Cookie": '_ga'
    }
r = requests.get(url, headers=hds)
print(r.text)
5.自动管理cookie的机制,创建一个session = requests.session(), 自动维护cookie信息s = requests.session()  # 创建session
print("登录之前的cookie信息:", s.cookies)

#百格登录的接口
url = "https://www.bagevent.com/user/login"
cs = {

    "access_type": 1,
    "loginType":   1,
    "emailLoginWay": 0,
    "account": "2780487875@qq.com ",
    "password": "qq2780487875",
    "remindmeBox": "on",
    "remindme":    1
}
r = s.post(url, data=cs)  #用session 发送请求
assert "<title>百格活动 - 账户总览</title>" in r.text
print("登录之后的cookie信息:", s.cookies)
6.timeout 参数 , 设置请求的超时      1. 接口执行耗时比较久,默认的超时时间内执行不完.比如上传一个2G的大文件
      2. 接口性能要求,接口在xx ms内返回结果. 超过xx ms,认为性能不符合要求
# 淘宝查询手机号归属地的接口
# tcc.taobao.com/cc/json/mobile_tel_segment.htm
url = "https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=180122345678"
# 该接口是否能在200毫秒返回结果
for i in range(10):
    try:
        r = requests.get(url, timeout=0.2)
        # print(r.text)
        print(r.status_code)
    except Exception as e:
        print(e)

回复

使用道具 举报

关注0

粉丝0

帖子13

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备20001493号-1 )

版权所有 © 西安菁英教育科技有限公司 2023-2026