代码拉取完成,页面将自动刷新
"""
定义所有的单接口测试
"""
import pytest
import os
import requests
from common.datatool import home_page_data,create_topic_data
from common.utils import get_project_root
home_data = home_page_data()
# 编写代码,读取csv文件中的内容,读取成功之后将数据
import csv
home_data_csv = []
root = get_project_root()
csvfile = os.path.join(root,'testdata/home_topics.csv')
with open(csvfile, mode='r', encoding='utf8') as f:
data = csv.reader(f)
# 第一行数据不需要
next(data) # 去掉第一行
# 从第二行数据开始迭代
for line in data:
print(line)
# 将数据追加到list
home_data_csv.append(tuple(line))
print("data", home_data_csv)
@pytest.mark.parametrize("tab,limit,expect_tab,expect_limit", home_data_csv)
def test_home_page_csv(tab, limit, expect_tab, expect_limit):
url = "http://47.100.175.62:3000/api/v1/topics"
querydata = {
"tab": tab,
"limit": int(limit) # csv文件中读出来的时候时 字符串,将字符串转换为int
}
r = requests.get(url, params=querydata)
# 断言tab值
for topic in r.json()["data"]:
assert topic["tab"] == expect_tab
# 断言limit
assert len(r.json()["data"]) == int(expect_limit) # 从csv文件中读取出来的时候为字符串类型,转换格式为int数字。
@pytest.mark.parametrize("tab,limit,expect_tab,expect_limit",home_data)
def test_home_page(tab,limit,expect_tab,expect_limit):
url = "http://47.100.175.62:3000/api/v1/topics"
querydata = {
"tab":tab,
"limit":limit
}
r = requests.get(url,params=querydata)
#断言tab值
for topic in r.json()["data"]:
assert topic["tab"] == expect_tab
# 断言limit
assert len(r.json()["data"]) == expect_limit
topic_data=create_topic_data()
#数据的格式为 (token,title,tab,content,expect_success,expect_err_msg)
@pytest.mark.parametrize('token,title,tab,content,expect_success,expect_err_msg',topic_data)
def test_create_topics(token,title,tab,content,expect_success,expect_err_msg):
url = "http://47.100.175.62:3000/api/v1/topics"
body_data = {
"accesstoken":token,
"title":title,
"tab": tab,
"content":content
}
r = requests.post(url,json=body_data)
# 进行断言
# 1. success 结果断言
assert r.json()["success"] == expect_success
# 只有当 发帖失败的时候才会对错误提示信息进行断言
if expect_success == False:
assert r.json()["error_msg"] == expect_err_msg
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。