当前位置:   article > 正文

python接口测试

python接口测试

1.简介

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到,Requests是Python语言的第三方的库,专门用于发送HTTP请求

2.下载

pip install requests

3.引用

import requests

4..请求方式get传参

无参数

r  = requests.get('http://www.baidu.com')

有参数

方式1:

r  = requests.get(url="url",params="参数")

方式2:

no1="url"

no2="参数"

r=requests.get(no1,params=no2)

5..请求方式post传参

r  = requests.get(url="url",data="参数")

6.常见响应

r.status_code        响应状态码
r.heards             响应头
r.cookies            响应cookies
r.text               响应文本
r.json()             响应的字典类型数据
r. encoding          当前编码
r. content            以字节形式(二进制)返回

1:添加等待时间
requests.get(url,timeout=1)          #超过等待时间则报错
2:添加请求头信息
requests.get(url,headers=headers)    #设置请求头
3:添加文件
requests.post(url, files=files)      #添加文件

7.接口测试流程

requests+unittest+HtmlTestRunner

读取文件中的数据
requests拿到数据请求接口返回状态码
通过断言验证返回的数据和预期结果
生成allure的测试报告

dataDemo(存放数据)>> readDemo(读取数据)>> restDemo(发送请求生成报告)

数据建立

csv

 elsx

 

读取csv文件流程

 读取xlsx文件流程

 8.进行单元测试

csv

xlsx

 

 打印报告

csv

 xlsx

 代码取用

csv

  1. import csv
  2. class ReadCsv():
  3. def readcsv(self):
  4. li=[]
  5. rr=csv.reader(open("../datatest0826/testdata0826.csv"))
  6. li=[i for i in rr]
  7. li=li[1::]
  8. return li
  9. r=ReadCsv()
  10. print(r.readcsv())

 

  1. import requests,unittest
  2. from readdata.reaffatacsv import ReadCsv
  3. rc=ReadCsv()
  4. li=rc.readcsv()
  5. class ApiClassCsv(unittest.TestCase):
  6. def test01(self):
  7. for i in li:
  8. cs=eval(i[1])
  9. if i[2]=="get":
  10. objs=requests.get(url=i[0],params=cs)
  11. self.assertEqual(objs.json()['error_code'],int(i[3]))
  12. else:
  13. objs=requests.post(url=i[0],data=cs)
  14. self.assertEqual(objs.json()['error_code'],int(i[3]))
  15. if __name__ == '__main__':
  16. unittest.main()
  1. from common.HTMLTestRunner import HTMLTestRunner
  2. from requesttest0826.requestunintestcsv import ApiClassCsv
  3. import unittest
  4. class Htmlclass():
  5. def htmlmethod(self):
  6. suite=unittest.TestSuite()
  7. lis=['test01']
  8. for i in lis:
  9. suite.addTest(ApiClassCsv(i))
  10. with open('../reports1.html','wb')as s:
  11. HTMLTestRunner(
  12. stream=s,
  13. title="接口01",
  14. description='一次',
  15. verbosity=2
  16. ).run(suite)
  17. hc=Htmlclass()
  18. hc.htmlmethod()

xlsx

  1. from openpyxl import load_workbook
  2. class ReadXlsl():
  3. def readxlsl(self):
  4. getxlsx=load_workbook("../datatest0826/testdata0826.xlsx")
  5. Sheet=getxlsx['Sheet1']
  6. xlsldata=[]
  7. for i in range(2,Sheet.max_row+1):
  8. getdata={}
  9. for j in range(1,Sheet.max_column+1):
  10. getdata[Sheet.cell(1, j).value] = Sheet.cell(i, j).value
  11. xlsldata.append(getdata)
  12. return xlsldata
  1. import requests,unittest
  2. from readdata.readdataxlsx import ReadXlsl
  3. rc=ReadXlsl()
  4. li=rc.readxlsl()
  5. class ApiClassXlsx(unittest.TestCase):
  6. def test01(self):
  7. for i in li:
  8. cs=eval(i['params'])
  9. if i['method'] == "get":
  10. objs = requests.get(url=i['url'], params=cs)
  11. self.assertEqual(objs.json()['error_code'], int(i['dy']))
  12. else:
  13. objs = requests.post(url=i['url'], data=cs)
  14. self.assertEqual(objs.json()['error_code'], int(i['dy']))
  15. if __name__ == '__main__':
  16. unittest.main()
  1. from common.HTMLTestRunner import HTMLTestRunner
  2. from requesttest0826.requestunittestxlsl import ApiClassXlsx
  3. import unittest
  4. class HtmlClass():
  5. def htmlmethod(self):
  6. suite = unittest.TestSuite()
  7. lis = ['test01']
  8. for i in lis:
  9. suite.addTest(ApiClassXlsx(i))
  10. with open('../reports2.html', 'wb') as s:
  11. HTMLTestRunner(
  12. stream=s,
  13. title="接口02",
  14. description='二次',
  15. verbosity=2
  16. ).run(suite)
  17. hc = HtmlClass()
  18. hc.htmlmethod()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/620376
推荐阅读
相关标签
  

闽ICP备14008679号