发布: 更新时间:2022-08-28 22:45:42
Tpshop商城登录接口测试
import unittest
import requests
class TestTpshopLogin(unittest.TestCase):
# 测试 登录成功
def test01_login_ok(self):
# 创建 session 实例
session = requests.Session()
# 使用实例,调用get 发送获取验证码请求
session.get(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify&r=0.21519623710645064")
# 使用实例,调用post 发送登录请求
resp = session.post(
url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.7094195931397276",
data={"username": "13012345678", "password": "123456", "verify_code": "8888"})
print("响应结果 =", resp.json())
# 断言:
self.assertEqual(200, resp.status_code)
self.assertEqual(1, resp.json().get("status"))
self.assertEqual("登陆成功", resp.json().get("msg"))
# 测试 手机号不存在
def test02_tel_not_exists(self):
# 创建 session 实例
session = requests.Session()
# 使用实例,调用get 发送获取验证码请求
session.get(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify&r=0.21519623710645064")
# 使用实例,调用post 发送登录请求
resp = session.post(
url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.7094195931397276",
data={"username": "13847834701", "password": "123456", "verify_code": "8888"})
print("响应结果 =", resp.json())
# 断言:
self.assertEqual(200, resp.status_code)
self.assertEqual(-1, resp.json().get("status"))
self.assertEqual("账号不存在!", resp.json().get("msg"))
# 测试 密码错误
def test03_pwd_err(self):
# 创建 session 实例
session = requests.Session()
# 使用实例,调用get 发送获取验证码请求
session.get(url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify&r=0.21519623710645064")
# 使用实例,调用post 发送登录请求
resp = session.post(
url="http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.7094195931397276",
data={"username": "13012345678", "password": "123456890", "verify_code": "8888"})
print("响应结果 =", resp.json())
# 断言:
self.assertEqual(200, resp.status_code)
self.assertEqual(-2, resp.json().get("status"))
self.assertEqual("密码错误!", resp.json().get("msg"))
封装思想:
分析:
封装实现:
登录接口优化后:
可以看到:对于断言,也有很多重复的,同时这里的测试数据abc也可以使用数据代码分离的方式,写到专门的json文件中去。
经过接口封装、和断言封装后。代码如下:
可以看出:三个测试用例,结构都是相同的,只是传入的参数不同。因此可以考虑使用参数化
提取每个测试⽤例 使⽤的 测试数据 和 断⾔数据。
封装函数,将 数据 转换为 元组列表。
原神3.8心海武器推荐 原神3.8心海带什么武器
阴阳师寻迹骰怎么获得 阴阳师寻迹骰获得方法
王者荣耀妄想都市观光怎么获得 王者荣耀妄想都市观光活动
阴阳师新召唤屋和幕间皮肤效果怎么样 阴阳师新召唤屋和幕间皮肤获取方法介绍
羊了个羊7.26攻略 羊了个羊7月26日怎么过
崩坏星穹铁道求不得成就攻略介绍 崩坏星穹铁道求不得成就怎么获得
崩坏星穹铁道去吧阿刃成就攻略介绍 崩坏星穹铁道去吧阿刃成就怎么获得
时空中的绘旅人罗夏生日有什么复刻 绘旅人罗夏生日礼包复刻一览
银河境界线武器强度怎么看 银河境界线武器强度排行攻略
阴阳师红蛋蛋限时福利怎么获得 阴阳师再结前缘版本福利介绍