学完接口自动化测试了,我决定把它运用到现在正在进行的项目上。兴致勃勃地创建了一个项目。然而,这一刻才明白,发现除了课堂上所讲的内容,还有很多很多的坑需要填补。报班学习,除了要学习到课堂上老师所讲的内容,更重要的是需要学习到解决问题的方法。
在完成了我的第一个接口请求之后,终于缓了一口气,下面介绍一下我的艰辛历程:
经过查看接口文档,发现这是一个post请求,那么好的,看我的!
- 创建一个http_request请求:
i
port requests
url='xxx'
data={'phoneNo': 'xxx'}
res=requests.post(url=url, data=data)
print(res.json())
运行:
{'msg': '【认证鉴权服务器】找不到clientId', 'result': False, 'kind': '610010000100001'}
咦,报错了!找不到clientId
- 在华华老师的提示下,我把它放在headers里去,通过使用fiddler工具抓包,我把请求头里的信息放到了headers里:
import requests
url='xxx'
data={'phoneNo': 'xxxx'}
headers={
"Content-Type": "application/json",
"User-Agent": "xxx/2.9.2 (iPhone; iOS 11.4; Scale/3.00)",
"client_id": "xxx@xxx",
"unicode": "xxx1034acaxxx8c049101a"
}
res=requests.post(url=url,headers=headers, data=data)
print(res.json())
运行:
{'msg': '数据解析异常,请输入有效的数据信息', 'kind': '0000003', 'result': False}
哎, 这是什么鬼。
- 经过分析,查资料,数据需要做个处理,所以我决定尝试处理一下data的数据:
用json处理data的数据:
import json
import requests
url='xxx'
data={'phoneNo': 'xxx'}
headers={
"Content-Type": "application/json",
"User-Agent": "xxx/2.9.2 (iPhone; iOS 11.4; Scale/3.00)",
"client_id": "xxx@xxx",
"unicode": "xxxx"
}
res=requests.post(url=url,headers=headers, data=json.dumps(data))
print(res.json())
运行:
{'data': {'flag': True}, 'result': True}
嘿嘿,终于成功了。
- 把它封装成类,并加上处理异常的操作:
import requests
import json
class MyHttpRequest:
def my_http_request(self,url,headers,data,http_method):
try:
if http_method.upper() =="POST":
res = requests.post(url=url,data=data,headers=headers)
elif http_method.upper() =="GET":
res = requests.get(url=url,data=data,headers=headers)
else:
print("请求方式不正确")
except Exception as e:
print("请求报错了:{}".format(e))
raise e
return res
if __name__ == '__main__':
url = 'xxx'
headers = {
"Content-Type": "application/json",
"User-Agent": "xxx/2.9.2 (iPhone; iOS 11.4; Scale/3.00)",
"client_id": "xxx@xxx",
"unicode": "xxxx"
}
data = {"phoneNo": "xxx"}
res = MyHttpRequest().my_http_request(url, data=json.dumps(data), http_method="post", headers=headers)
print('结果是:{}'.format(res.json()))
运行:
结果是:{'data': {'flag': True}, 'result': True}
这是我的第一次脱离课堂,自己实际动手去做接口自动化,经过自己的尝试,最终成功了!
自动化测试还有很多路要走,但是我会继续努力的!
欢迎来到testingpai.com!
注册 关于