1、获取脚本根目录
import os
path_root = os.path.realpath(__file__).split('commen')
print(path_root)
2、csv文件----->python列表
import pandas
import json
from commen.getpath import path_root
path_csv01 = path_root + r'data\post.csv'
datacsv = pandas.read_csv(path_csv01, sep=',')
print(datacsv)
datajson = pandas.DataFrame.to_json(self=datacsv, orient="records")
datalist01 = json.loads(datajson)
3、导入测试用例
import requests
import unittest
import ddt
from data.getcsv import datalist01
@ddt.ddt()
class TestPost(unittest.TestCase):
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
@ddt.data(*datalist01)
def test01(self, dp):
url01 = "http://127.0.0.1:8000/api/departments/"
dptid = dp["dep_id"]
dptname = dp["dep_name"]
mastername = dp["master_name"]
slogan = dp["slogan"]
code = dp["code"]
# dep_id为空、缺失和正常的情况
if dp["dep_id"] == None:
dptid = ""
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, mastername, slogan)
elif dp["dep_id"] == "缺失":
data = '{"data":[{"dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptname, mastername, slogan)
# dep_name为空、缺失和正常的情况
elif dp["dep_name"] == None:
dptname = ""
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, mastername, slogan)
elif dp["dep_name"] == "缺失":
data = '{"data":[{"dep_id":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid,mastername, slogan)
# master_name为空、缺失和正常的情况
elif dp["master_name"] == None:
mastername = ""
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, mastername, slogan)
elif dp["master_name"] == "缺失":
data = '{"data":[{"dep_id":"%s","dep_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, slogan)
# slogan为空、缺失和正常的情况
elif dp["slogan"] == None:
slogan = ""
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, mastername, slogan)
elif dp["slogan"] == "缺失":
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s"}]}' % (
dptid, dptname, mastername)
else:
data = '{"data":[{"dep_id":"%s","dep_name":"%s","master_name":"%s","slogan":"%s"}]}' % (
dptid, dptname, mastername, slogan)
myheader = {"Content-Type": "application/json"}
reqst = requests.post(url01, data=data.encode('utf-8'), headers=myheader)
print("用例编号:", dp["bh"])
print("用例性质:", dp["xz"])
print("用例标题:", dp["bt"])
print("预期结果:", dp["yqjg"])
print("返回的状态码:", reqst.status_code)
print("返回的响应报文:", reqst.text, end=' ')
self.assertEqual(code, reqst.status_code)
if __name__ == '__main__':
unittest.main()
csv文件格式
dep_id,dep_name,master_name,slogan,code null,bbbb,b_master,b is the best,400 CCCC,null,c_master,c is the best,400 DDDD,dddd,null,d is the best,400 EEEE,eeee,e_master,e is the best,201 缺失,ffff,f_master,hello,,400 GGGG,缺失,g_master,g is the best,400 HHHH,hhhh,缺失,h is the best,400 TRUE,iiii,i_master,i is the best,400 JJJJ,FALSE,j_master,j is the best,400 KKKK,kkkk,TRUE,k is the best,400 LLLL,llll,l_master,数值:123,400 AAAA,aaaa,a_master,缺失,201
注:每一行数据为一组字典,最上面一行代表每一列的字段值