Python自动化 Python11 期小魔仙之第一次 HTTP 接口测试

学完接口自动化测试了,我决定把它运用到现在正在进行的项目上。兴致勃勃地创建了一个项目。然而,这一刻才明白,发现除了课堂上所讲的内容,还有很多很多的坑需要填补。报班学习,除了要学习到课堂上老师所讲的内容,更重要的是需要学习到解决问题的方法。 在完成了我的第一个接口请求之后,终于缓了一口气,下面介绍一下我的艰辛历程: 经过查看接口文档,发现这是一个post请求,那么好的,看我的!

1、创建一个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

2、在华华老师的提示下,我把它放在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} 哎, 这是什么鬼。

3、经过分析,查资料,数据需要做个处理,所以我决定尝试处理一下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} 嘿嘿,终于成功了。

4、把它封装成类,并加上处理异常的操作:

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}

这是我的第一次脱离课堂,自己实际动手去做接口自动化,经过自己的尝试,最终成功了! 自动化测试还有很多路要走,但是我会继续努力的!

推荐一个软件测试学习交流群:785128166,群里有分享的视频,面试指导,测试资料,还有思维导图、群里有视频,都是干货的,你可以下载来看。主要分享测试基础、接口测试、性能测试、自动化测试、TestOps架构、Jmeter、LoadRunner、Fiddler、MySql、Linux、简历优化、面试技巧以及大型测试项目实战视频资料。合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

扫描二维码关注公众号,回复: 12747644 查看本文章

公众号:程序员二黑, 关注后免费领取海量学习资料。

好东西要和朋友一起分享哦
 

猜你喜欢

转载自blog.csdn.net/weixin_53519100/article/details/114597579
今日推荐