基于requests框架实现接口自动化测试项目实战

requests库是一个常用的用于http请求的模块,它使用python语言编写,在当下python系列的接口自动化中应用广泛,本文将带领大家深入学习这个库,Python环境的安装就不在这里赘述了,我们直接开干。

01、requests的安装

windows下执行如下命令:

pip install requests -i http://pypi.douban.com/simple/--trust-host pypi.douban.com

mac终端下执行如下命令:

python3 -m pip install requests -i http://pypi.douban.com/simple/--trust-host pypi.douban

02、常用方法

在这里插入图片描述
1、get请求实战:

  1. # !/usr/bin python3

  2. # encoding: utf-8 -*-

  3. # @author: 沙陌 微信:Matongxue_2

  4. # @Time:2021/3/25 9:54

  5. # @Copyright:北京码同学网络科技有限公司

  6. import requests

  7. host='http://10.0.0.18:8080'

  8. def get():

  9. """

  10. get接口请求

  11. :return:

  12. """

  13. url =host+'/pinter/com/getSku' #接口地址

  14. params={

  15. 'id':1

  16. }

  17. resp = requests.get(url,params=params)

  18. status_code=resp.status_code #获取响应状态码

  19. print('响应状态码:{}'.format(status_code))

  20. text=resp.text #获取响应内容,结果类型是字符串

  21. print('响应内容:{}'.format(text))

  22. json=resp.json() #获取响应内容,结果是字典类型

  23. print('响应内容:{}'.format(json))

  24. resp_headers=resp.headers #获取响应headers

  25. print('响应header:{}'.format(resp_headers))

  26. if__name__=='__main__':

  27. get()

 结果如下:

  1. D:\Python\Python36\python.exe D:/pycharmprojects/first/requetsstudy/pinter.py

  2. 响应状态码:200

  3. 响应内容:{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"645","stock":709,"brand":"testfan"}}

  4. <class'dict'>

  5. 响应内容:{'code':'0','message':'success','data':{'skuId':1,'skuName':'ptest-1','price':'645','stock':709,'brand':'testfan'}}

  6. 响应header:{'Content-Type':'application/json;charset=UTF-8','Transfer-Encoding':'chunked','Date':'Fri,12Mar202122:13:49GMT','Keep-Alive':

  7. 'timeout=20','Connection':'keep-alive'}

  8. Process finished with exit code 0

上述代码中请求发起后得到一个响应对象变量resp,那么resp对象的常用方法如下:
在这里插入图片描述

2、post请求实战

post请求的参数格式通常有多种, 我们依次学习

第一种:表单形式的参数

  1. import requests

  2. host = 'http://10.0.0.18:8080'

  3. def post():

  4. """

  5. post表单

  6. :return:

  7. """

  8. url=host+'/pinter/com/login'

  9. #表单参数

  10. data={

  11. 'userName':'沙陌',

  12. 'password':'123456'

  13. }

  14. resp=requests.post(url=url,data=data)

  15. status_code=resp.status_code#获取响应状态码

  16. print('响应状态码:{}'.format(status_code))

  17. text=resp.text#获取响应内容,结果类型是字符串

  18. print('响应内容:{}'.format(text))

  19. json=resp.json()#获取响应内容,结果是字典类型

  20. print('响应内容:{}'.format(json))

  21. resp_headers=resp.headers#获取响应headers

  22. print('响应header:{}'.format(resp_headers))

 第二种:json格式参数

  1. import requests

  2. host='http://10.0.0.18:8080'

  3. def post_json():

  4. """

  5. postjson

  6. :return:

  7. """

  8. url =host+'/pinter/com/register'

  9. #header里定义参数类型

  10. headers={

  11. 'Content-Type':'application/json'

  12. }

  13. #json参数

  14. json={

  15. "userName":"沙陌",

  16. "password":"1234",

  17. "gender":1,

  18. "phoneNum":"110",

  19. "email":"beihe@163.com",

  20. "address":"Beijing"

  21. }

  22. resp=requests.post(url=url,json=json)

  23. status_code=resp.status_code #获取响应状态码

  24. print('响应状态码:{}'.format(status_code))

  25. text=resp.text #获取响应内容,结果类型是字符串

  26. print('响应内容:{}'.format(text))

  27. json=resp.json() #获取响应内容,结果是字典类型

  28. print('响应内容:{}'.format(json))

  29. resp_headers=resp.headers #获取响应headers

  30. print('响应header:{}'.format(resp_headers))

3、put接口实战

 
  1. import requests

  2. host='http://10.0.0.18:8080'

  3. def put():

  4. """

  5. put 清酒

  6. :return:

  7. """

  8. url = host+'/pinter/com/phone' #接口地址

  9. #参数

  10. json={

  11. "brand":"Huawei",

  12. "memorySize":"64G",

  13. "cpuCore":"8核",

  14. "price":"8848",

  15. "desc":"全新上市"

  16. }

  17. resp=requests.put(url=url,json=json)

  18. status_code=resp.status_code #获取响应状态码

  19. print('响应状态码:{}'.format(status_code))

  20. text=resp.text #获取响应内容,结果类型是字符串

  21. print('响应内容:{}'.format(text))

  22. json=resp.json() #获取响应内容,结果是字典类型

  23. print('响应内容:{}'.format(json))

  24. resp_headers=resp.headers #获取响应headers

  25. print('响应header:{}'.format(resp_headers))

4、delete请求
在这里插入图片描述

5、request.session.request用法

可以自动管理cookie,比如如下需要采用cookie认证的接口
在这里插入图片描述
在这里插入图片描述

结果如下:

  1. D: \Python\Python36 \py thon. exeD: /pycharmprojects/first/requetsstudy/pinter.py

  2. 响应状态码: 200

  3. 响应内容:{"code":"0", "message": "success", "data": "$22; 378,198"}

  4. Process finished with exitcode 0

 6、token关联的接口如何做呢?
在这里插入图片描述
对于需要token关联的接口来说,需要从登录接口的返回值中提取token信息,并传递给需要token的接口
在这里插入图片描述

结果如下:

  1. D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter1.py

  2. 响应状态码:200

  3. 响应内容:{"code":"0","message":"success","data":"$74,780,457"}

  4. Process finished with exit code 0

总结一下:

requests库的请求方法里参数众多,所以简单划分一下:

查询参数就用 params=params

表单参数就用 data=data

json参数就用 json=json

请求头信息header就用 headers=headers

 

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
接口自动化测试是软件开发过程中的重要环节,它可以验证接口功能是否正常、提高测试效率和准确性。pytest是一个功能强大的Python测试框架,它提供了简洁的语法和丰富的插件,非常适合用于接口自动化测试实战。 在进行pytest接口自动化测试实战时,我们可以按照以下步骤进行: 1. 环境准备:首先,我们需要安装pytest框架和相关依赖的库,例如requests库用于发送HTTP请求,pytest-html插件用于生成HTML测试报告。 2. 编写测试用例:接下来,我们需要编写测试用例。可以使用pytest提供的装饰器(如@pytest.mark.parametrize)来参数化测试用例,从而实现对不同输入和预期结果的验证。 3. 发送请求:在测试用例中,我们可以使用requests库发送HTTP请求,根据接口的请求方法(如GET、POST、DELETE等)以及请求参数、请求头等来构建请求。 4. 断言结果:一旦接口请求完成,我们可以使用断言语句进行结果的判断和验证。断言语句可以使用pytest提供的断言函数(如assert response.status_code == 200)来实现。 5. 运行测试:编写完测试用例后,我们可以使用pytest命令来执行测试。pytest会自动搜索以"test_"开头的文件和以"test_"开头的函数,并执行这些函数中的测试用例。 6. 生成测试报告:执行完测试后,pytest会生成测试结果的详细报告。我们可以使用pytest-html插件来生成HTML格式的测试报告,方便查看测试结果和统计。 通过以上步骤,我们可以使用pytest框架进行接口自动化测试实战。pytest提供了丰富的功能和灵活的语法,能够大大简化测试代码的编写和维护,并且测试报告清晰明了,方便查看和分析测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值