如何使用python+requests进行接口自动化测试

使用python+requests进行接口测试我们已经进行了初步的认识,那么如何进行接口的自动化测试呢,目前企业中接口自动化多以excel,数据库mysql,yaml文件存放接口数据进行循环遍历进行接口请求。若不了解excel及数据库相关操作可阅读之前文章:

python如何处理txt及excel文件

使用python链接mysql及redis(缓存型数据库)

import xlrd
import json
import xlutils
from xlutils.copy import copy
excDir = './apitest.xls'
#保持原样式不变打开excel,转译取出的参数冲突时,需去掉样式
workbook = xlrd.open_workbook(excDir,formatting_info=True)  
worksheet = workbook.sheet_by_index(0)
nrows = worksheet.nrows
url = 'http://39.107.96.138:3000/api/v1/topics'
wrbook = copy(workbook)
wrsheet = wrbook.get_sheet(0)
for i in range(1,nrows):
    cellData = worksheet.cell_value(i, 6)    # 第7列数据存放的参数
    response = requests.get(url,params=cellData)
    excelres = response.json()["success"]
    wrsheet.write(i, 9, excelres)   #excel写入获得结果   第10列写入结果
wrbook.save(r'./apitest-results.xls')  #保存

可以看到我们采用了excel循环请求的方式,对接口进行了测试,最后把得到的数据存入到了excel之中,这里我们还可以进行优化,使用openpyxl库加断言的方式请求excel

import requests
import json
import openpyxl
def two():
    excDir = r'./goodtest.xlsx'
    workbook = openpyxl.load_workbook(excDir)        #打开文件
    sheets = workbook.sheetnames      #获取所有表名
    worksheet = workbook['Sheet1']   #获取Sheet1
    nrows = worksheet.max_row   #获取行数
    cols = worksheet.max_column   #获取列数
    data = worksheet.cell(2,4).value   #获取某单元格的值
    for i in range(2,nrows+1):
        url = worksheet.cell(i,4).value
        plan = worksheet.cell(i,5).value
        cellData = worksheet.cell(i,7).value
        if plan == ('get'):
            response1 = requests.get(url,params=cellData)
            if response1.json()["success"] == True:
                worksheet.cell(i,10,value="passee")
            else:
                worksheet.cell(i,10,value="fail")
        if plan == ("post"):
            cellData1 = json.loads(cellData, encoding='utf-8')
            response2 = requests.post(url,data=cellData1)
            if response2.json()["success"] == True:
                worksheet.cell(i, 10, value="pass")
            else:
                worksheet.cell(i, 10, value="fail")
    workbook.save(excDir)

以上才用了一个excel中存放多个接口的用例,循环判断请求方式进行不同的请求获取不同的用力参数进行请求,最后进行断言判断,将得到的结果写入到excel之中。

我们还可以采用数据库存放用例的方式进行循环遍历的请求:

import pymysql
import requests
#链接数据库
db = pymysql.connect(host='127.0.0.1',user='root',passwd='123456',db='ergou')
cursor = db.cursor()   #创建游标
cursor.execute('select count(id) from test;')  #查询语句
match = cursor.fetchone()
matchs = int(match[0])   #获取总数
cursor.execute('select url from test;')
url = cursor.fetchall()   获取每个数据的url
cursor.execute('select method from test;')
method = cursor.fetchall()
cursor.execute('select params from test;')
params = cursor.fetchall()
for i in range(0,matchs):
    response = requests.get(''.join(url[i]),params=''.join(params[i])) # 请求数据且转换
    if response.json()["success"]==True:
        cursor.execute(f'update test set result = "pass" where id = {i}+1')
    print(response.status_code)
    print(response.text)
db.commit()

以上可以看到我们首先获取数据库中的数据,数据以元组的形式存放,我们需要进行格式的转换,最后别忘了数据库的提交哦。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值