参考其他的文章,发现有的时候,接口测试时,并不想用到excel,因为做了部分的调整
封装的对象方法
def login_getRow():
object = {}
object["method"] = "post/get"
object["host"] = "xxxxx"
object["path"] = "/xxx/xxxx/xxx"
object["url"] = object["host"] + object["path"]
object["params"] = None
# object["header"] = "{\"Accept\":\"*/*\"}" 改为
header={'content-type':'application/json'}
object["header"] = header
object["code"] = "判断的字段"
object["expected_code"] = int(0)
if object["header"] == "":
object["header"] = None
log.info("***************:{}".format(object))
return object
调用的request,请求方法
def test_request(object):
result = None
try:
log.info("***************test_request开始")
if object["method"] == "post":
response = requests.post(object["url"], data=json.loads(object["params"]), headers=object["header"])
result = response.json()
elif object["method"] == "get":
response = requests.get(object["url"], object["params"], headers=object["header"])
result = response.json()
else:
log.info("Unknown method " + object["method"])
log.info("***************test_request结束")
except requests.exceptions.ConnectTimeout as e:
result = {object["code"]: "timeout"}
return result
然后发现不停的出现各种报错,什么
异常1:Content type ‘application/octet-stream’ not supported"
异常2:Content type ‘application/octet-stream‘ not supported
异常3:Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“
异常4:TypeError: the JSON object must be str, bytes or bytearray, not ‘dict’
异常5:AttributeError: ‘str’ object has no attribute ‘items’
后来就进行了header跟params的字段的不停格式尝试
后面给header字段赋值
header={'content-type':'application/json'}
object["header"] = header
参数赋值
data = {"name": "xxxxx"}
# object["params"] = data 不做转化会报异常4
object["params"] = json.dumps(data)
再后面就是4,5时不时出现,然后去看了下requests.post的方法,发现有两种使用参数,data跟json
然后看过了swagger,也没看出具体那个,然后就尝试下把requests.post的参数,data改为json
response = requests.post(object["url"], json=json.loads(object["params"]), headers=object["header"])
接口请求就成功了