首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

接口测试1

前篇文章解说了接口测试的测试点、接口格式和注意点,下面我们就通过代码的示例来从简至繁来说明接口过程。

一、案例1(get请求)

代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_test1.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests

# 请求的链接
url = 'http://suggest.taobao.com/sug?code=utf-8&q=裤子&callback=cb 用例'
# 发送get请求
r = requests.post(url)
# 请求的状态码 200代表成功
status = r.status_code
print(status)
# 请求的内容
j = r.json()
print(j)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_test1.py
200
{'result': [['裤子女2019新款', '7085918.91397309'], ['裤子女夏', '8402921.55846415'], ['裤子男', '9996041.941283854'], ['裤子男夏季', '4791450.013027441'], ['裤子男韩版潮流', '9105098.140387245'], ['裤子女宽松', '5341028.8175293235'], ['裤子女宽松 直筒', '2485176.4919016883'], ['裤子套装女夏时尚', '816695.6659772493'], ['裤子套装夏女', '2721351.062397373'], ['裤子女显瘦百搭', '1361546.6926656684']]}

Process finished with exit code 0

二、案例2(post请求)

代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_post_test2.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests

# 请求的链接
url = 'http://suggest.taobao.com/sug'
# post请求以字典格式传入
data = {'code':'utf-8','q':'裤子','callback':'cb 用例'}
#发送post请求
r = requests.post(url,data)
# 请求的状态码 200代表成功
status = r.status_code
print(status)
#请求的内容
print(r.content)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_post_test2.py
200
b''

Process finished with exit code 0

三、案例3(进行接口状态码断言判断)

代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_test1.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests

# 请求的链接
url = 'http://suggest.taobao.com/sug?code=utf-8&q=裤子&callback=cb 用例'
# 发送请求
r = requests.post(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口状态码断言 等于200则PASS ,否则为FAIL
if status == 200:
    print('测试用例PASS')
else:
    print('测试用例FAIL')
print(status)
# 请求的内容
j = r.json()
print(j)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_get_test1.py
测试用例PASS
200
{'result': [['裤子女2019新款', '7085918.91397309'], ['裤子女夏', '8402921.55846415'], ['裤子男', '9996041.941283854'], ['裤子男夏季', '4791450.013027441'], ['裤子男韩版潮流', '9105098.140387245'], ['裤子女宽松', '5341028.8175293235'], ['裤子女宽松 直筒', '2485176.4919016883'], ['裤子套装女夏时尚', '816695.6659772493'], ['裤子套装夏女', '2721351.062397373'], ['裤子女显瘦百搭', '1361546.6926656684']]}

Process finished with exit code 0

四、案例4(接口内容断言判断--正常/异常情况)

正常情况

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_test1.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests

# 请求的链接
url = 'http://suggest.taobao.com/sug?code=utf-8&q=裤子&callback=cb 用例'
# 发送请求
r = requests.post(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口状态码断言 等于200则PASS ,否则为FAIL
if status == 200:
    print('测试用例PASS')
else:
    print('测试用例FAIL')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容,存在则PASS,否则为FAIL
if '裤子男夏季' in str(j):
    print('存在此数据')
else:
    print('不存在此数据')
print(j)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_get_test1.py
测试用例PASS
200
存在此数据
{'result': [['裤子女2019新款', '7085918.91397309'], ['裤子女夏', '8402921.55846415'], ['裤子男', '9996041.941283854'], ['裤子男夏季', '4791450.013027441'], ['裤子男韩版潮流', '9105098.140387245'], ['裤子女宽松', '5341028.8175293235'], ['裤子女宽松 直筒', '2485176.4919016883'], ['裤子套装女夏时尚', '816695.6659772493'], ['裤子套装夏女', '2721351.062397373'], ['裤子女显瘦百搭', '1361546.6926656684']]}

Process finished with exit code 0

异常情况:

在这里修改了上面的 裤子男夏季修改为裤子男夏季1

代码语言:javascript
复制
import requests

# 请求的链接
url = 'http://suggest.taobao.com/sug?code=utf-8&q=裤子&callback=cb 用例'
# 发送请求
r = requests.post(url)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口状态码断言 等于200则PASS ,否则为FAIL
if status == 200:
    print('测试用例PASS')
else:
    print('测试用例FAIL')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容,存在则PASS,否则为FAIL
if '裤子男夏季1' in str(j):
    print('存在此数据')
else:
    print('不存在此数据')
print(j)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_get_test1.py
测试用例PASS
200
不存在此数据
{'result': [['裤子女2019新款', '7085918.91397309'], ['裤子女夏', '8402921.55846415'], ['裤子男', '9996041.941283854'], ['裤子男夏季', '4791450.013027441'], ['裤子男韩版潮流', '9105098.140387245'], ['裤子女宽松', '5341028.8175293235'], ['裤子女宽松 直筒', '2485176.4919016883'], ['裤子套装女夏时尚', '816695.6659772493'], ['裤子套装夏女', '2721351.062397373'], ['裤子女显瘦百搭', '1361546.6926656684']]}

Process finished with exit code 0

五、案例5(接口代码封装---请求地址与逻辑代码区分之get请求)

1、增加配置文件为config.py

代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: config.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

"""(接口代码封装---请求地址与逻辑代码区分之post请求)"""
# baseurl  接口一般分为测试接口和正式接口
baseurl = 'http://suggest.taobao.com'
# 设定登录接口为baseurl
# 设定首页接口
url_home = baseurl + '/sug?code=utf-8&q=裤子&callback=cb 用例'

2、在interface_get_test.py文件头部导入上面的配置文件:import config

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_test1.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests
import config  #  导入config配置文件

# 发送请求 ,使用config.来调用想要的接口,这里调用首页接口
r = requests.get(config.url_home)
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口状态码断言 等于200则PASS ,否则为FAIL
if status == 200:
    print('测试用例PASS')
else:
    print('测试用例FAIL')
print(status)
# 请求的内容
j = r.json()
# 判断接口返回内容,存在则PASS,否则为FAIL
if '裤子男夏季1' in str(j):
    print('存在此数据')
else:
    print('不存在此数据')
print(j)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_get_test1.py
测试用例PASS
200
不存在此数据
{'result': [['裤子女2019新款', '7085918.91397309'], ['裤子女夏', '8402921.55846415'], ['裤子男', '9996041.941283854'], ['裤子男夏季', '4791450.013027441'], ['裤子男韩版潮流', '9105098.140387245'], ['裤子女宽松', '5341028.8175293235'], ['裤子女宽松 直筒', '2485176.4919016883'], ['裤子套装女夏时尚', '816695.6659772493'], ['裤子套装夏女', '2721351.062397373'], ['裤子女显瘦百搭', '1361546.6926656684']]}

Process finished with exit code 0

以后我们只需要该URL地址即可,无需修改代码,很方便

六、案例6(接口代码封装---请求地址与逻辑代码区分之post请求)

首先查看config.py文件

代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: config.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

"""(接口代码封装---请求地址与逻辑代码区分之post请求)"""
# baseurl  接口一般分为测试接口和正式接口
baseurl = 'http://suggest.taobao.com'

# 设定登录接口为baseurl
url_login = baseurl + '/sug?code=utf-8&q=裤子&callback=cb 用例'

# 设定注册接口
url_register = {'注册接口': baseurl + '/sug', 'parmras': {'code': 'utf-8', 'q': '裤子', 'callback': 'cb 用例'}}

# 设定首页接口
url_home = baseurl + '/sug?code=utf-8&q=裤子&callback=cb 用例'

interface_post_test.py文件代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_post_test2.py
# @Time    : 2019/8/16
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests
import config   # 引入config配置接口的文件

# 请求的链接
# url = 'http://suggest.taobao.com/sug'
# post请求以字典格式传入
# data = {'code':'utf-8','q':'裤子','callback':'cb 用例'}
#发送post请求
r = requests.post(config.url_register['注册接口'],config.url_register['parmras'])
# 请求的状态码 200代表成功
status = r.status_code
# 进行接口状态码断言 等于200则PASS ,否则为FAIL
if status == 200:
    print('测试用例PASS')
else:
    print('测试用例FAIL')
print(status)
#请求的内容
print(r.content)

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_post_test2.py
测试用例PASS
200
b''

Process finished with exit code 0

结论:此处引用了python字典方法

七、案例7(一次执行多个接口方法)

新建interface_python.py文件,代码示例

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File Name: interface_python.py
# @Time    : 2019/8/17
# @Author  : zhong
# @Blog    : https://www.jianshu.com/search?q=keitwo&page=1&type=note
# @QQ交流  : 3227456102

import requests
import config  #  导入config配置文件

# 注册接口函数
def test_register():
    #发送post请求
    r = requests.post(config.url_register['注册接口'],config.url_register['parmras'])
    # 请求的状态码 200代表成功
    status = r.status_code
    # 进行接口状态码断言 等于200则PASS ,否则为FAIL
    if status == 200:
        print('测试用例PASS')
    else:
        print('测试用例FAIL')
    print(status)
    #请求的内容
    print(r.content)

#  登录接口函数
def test_login():
    # 发送请求 ,使用config.来调用想要的接口,这里调用首页接口
    r = requests.get(config.url_home)
    # 请求的状态码 200代表成功
    status = r.status_code
    # 进行接口状态码断言 等于200则PASS ,否则为FAIL
    if status == 200:
        print('测试用例PASS')
    else:
        print('测试用例FAIL')
    print(status)
    # 请求的内容
    j = r.json()
    # 判断接口返回内容,存在则PASS,否则为FAIL
    if '裤子男夏季1' in str(j):
        print('存在此数据')
    else:
        print('不存在此数据')
    print(j)


# 调用执行测试接口
test_register()
print('执行了 测试注册接口的函数\t')
# 调用执行登录接口
test_login()
print('执行了 测试登录接口的函数')

运行结果

代码语言:javascript
复制
D:\python\python3.6.1\python36.exe E:/study/InterfaceTest/interface_python.py
测试用例PASS
200
b''
执行了 测试注册接口的函数  
测试用例PASS
200
不存在此数据
{'result': [['裤子女2019新款', '5275957.123179437'], ['裤子女夏', '10531147.817467552'], ['裤子男', '10015857.682509309'], ['裤子男夏季', '4564859.324174869'], ['裤子男韩版潮流', '9832323.47452347'], ['裤子女宽松', '5026630.587562665'], ['裤子女宽松 直筒', '2355817.2289288472'], ['裤子套装女夏时尚', '441211.076511861'], ['裤子套装夏女', '2042939.619458128'], ['裤子女显瘦百搭', '1223956.0558261117']]}
执行了 测试登录接口的函数

Process finished with exit code 0
下一篇
举报
领券