requests接口自动化-excel参数化

Posted uni-hoang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests接口自动化-excel参数化相关的知识,希望对你有一定的参考价值。

在数据量大的时候,需要使用文件参数化。
excel文件是其中一种。

  • 安装xlrd读取excel文件。(这里是在pycharm安装)
    发现选择豆瓣安装失败,阿里云安装成功。
    技术图片
    技术图片

  • 准备excel文件,放在test_data目录下
    技术图片
    技术图片
    字典数据
    技术图片

  • 在common目录下定义函数

import xlrd
def get_excel_row(row):  #row为第几行
    excel=xlrd.open_workbook(‘../test_data/usermessage.xlsx‘)  #使用相对路径,不要使用绝对路径
    table=excel.sheets()[0]  #读取第一页数据
    return table.cell_value(row,1),table.cell_value(row,2)  #读取传入行的第二列和第三列数据

def get_row(): #获取文件的总的函数
    excel=xlrd.open_workbook(‘../test_data/usermessage.xlsx‘)  #使用相对路径,不要使用绝对路径
    table=excel.sheets()[0]  #读取第一页数据
    return table.nrows

def get_dict(row):
    excel=xlrd.open_workbook(‘../test_data/dictmessage.xlsx‘)  #使用相对路径,不要使用绝对路径
    table=excel.sheets()[0]  #读取第一页数据
    return table.cell_value(row,1)
  • 在testcase目录下进行测试
    以登录幕布为例,url=‘https://mubu.com/login/password‘,请求方法get,请求为data参数(phone,password)
import requests
from common.get_excel import *  #导入自定义的函数
url=‘https://mubu.com/login/password‘
def test_get_excel_row():  #注意:测试用例与定义的的函数在同一
    for i in range(1,get_row()):  #调用get_row()获取文件的总的函数,循环访问
        phone,password=get_excel_row(i)
        params={‘phone‘:phone,‘password‘:password}
        r=requests.get(url=url,params=params)
        print(r.status_code)
        print(r.text)


# 读取excel里的字典数据,如{‘phone‘:15625172814,‘password‘:‘password123‘}
def test_dict():
    params=get_dict(1)
    print(type(params))  #直接获取是str类型
    print(get_dict(1))
    r=requests.get(url=url,params=eval(get_dict(1)))
    print(r.status_code)
    print(r.text)









以上是关于requests接口自动化-excel参数化的主要内容,如果未能解决你的问题,请参考以下文章

自动化接口测试平台:从excel读取数据,传递到request请求中获取不到参数问题

requests接口自动化-数据库参数化

接口自动化测试 unittest+request+excel(踩‘坑’)

接口自动化面试题

pytest+requests+excel 接口自动化框架

python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告