首页 > 其他分享 >读excel测试用例;登录;做pytest 请求

读excel测试用例;登录;做pytest 请求

时间:2023-08-03 20:55:51浏览次数:29  
标签:get url excel pytest 测试用例 key import data

1.从excel中读数据  返回【{字典}{字典}】;当传参数时,可以获得对应单元格内容

import xlrd
import json
from configs.configs import HOST
from utils.md5 import get_md5
# 在创建excel时,将登录接口的返回结果 粘贴到excel时需要 “只粘贴文本”
# 将excel 实例化
def get_excel_data(*keys):
    excel_data=[]# [{值},{值}]

    wookbook=xlrd.open_workbook('D:/python-pro/py0803/data/test_case.xls')
    # 通过名字读取sheet值
    sheet=wookbook.sheet_by_name('Sheet1')
    # 获得标题存在header中
    header = sheet.row_values(0)
    # 获得列表的总数
    nrows=sheet.nrows
    # print(nrows)#3
    # 循环读取每行的数据
    for i in range(1,nrows):
        # 打印每行读取的数据


        #将行和类放到字典中
        data_dict=dict(zip(sheet.row_values(0),sheet.row_values(i)))
        # 将包含\n换行符的字符串做处理
        for key in  data_dict:
            value=data_dict[key]
            if isinstance(value,str):
              data_dict[key]=value.replace('\n','').replace("\\",'')
        # 定义一个存放传入参数key对应的value的列表 保存value值
        row_data = {}
        for key in keys:
            if key in header:
                if key == 'url':
                    row_data[key]=f"{HOST}{data_dict['url']}"
                elif key == 'body':

                    temp = eval(data_dict['body'])
                    temp['password']=get_md5(temp['password'])
                    row_data[key]=temp
                else:
                    row_data[key]=data_dict[key]

        excel_data.append(row_data)

    return excel_data
if __name__ == '__main__':
    d=get_excel_data("expect")

    dd=eval(d[0]['expect'])['msg']
    print(dd)

2.设置登录的HOST配置文件

# D:\python-pro\py0803\configs\configs.py
# configs包中的config.py
# 配置模块
HOST='http://'

3.发送登录请求

# D:\python-pro\py0803\libs\login.py
# md5 加密
import json

import requests
from utils.read_excel import get_excel_data



def get_login(method,url,data):


    resp=getattr(requests,method.lower())(url,data)
    resp_dic=eval(resp.text.replace('false', 'False'))  # 从字符转字典

    return resp_dic
if __name__ == '__main__':
    for one in get_excel_data("method","url","body"):
      d=get_login(one['method'],one['url'],one['body'])
      print(d["msg"])

4.pytest   做比较

# D:\python-pro\py0803\libs\login.py
# 比较 请求的结果和 excel中预期的结果
import pytest
from libs.login import get_login
from utils.read_excel import get_excel_data
@pytest.mark.parametrize('method,url,body,expect',
                         get_excel_data("method","url","body","expect"))
def test_real_exp(method,url,body,expect):
    for one in  get_excel_data("method","url","body","expect"):
        real = get_login(one[method],one[url],one[body])["msg"]

        exp = eval(one[expect])['msg']

        assert real == exp

5.

 

标签:get,url,excel,pytest,测试用例,key,import,data
From: https://www.cnblogs.com/haha1988/p/17604426.html

相关文章

  • Excel分类后数字类型的内容值后面变为0
    背景在工作中经常遇到从日志或者其他地方拷贝过来的文本,里面使用其他分隔符进行分割。然而,使用Excel的分列功能进行分列后,发现数字类型的数值后面变为0。有时候我们就是需要原先的数值,该怎么办呢?比如,有如下的数据,以竖线|作为分割符。|员工编号|销售量|商品单价|销售额|20180......
  • Excel中文本型数字转换为数值型数字的方法
    背景工作中经常遇到需要将Excel中的内容进行求和或者其他计算,但是由于格式为文本,无法进行计算和求和。单元格的左上角都有绿色小三角,且用自动求和公式计算无法计算结果,显示为0,说明单元格格式为文本。1、直接将文本转化成数字需要转换的数据,左上角会出现黄色感叹号,点击,并选择......
  • excel递归读取目录并输出
    添加依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> ......
  • Excel中Hyperlink函数的使用
    Hyperlink函数是将文本形式的链接转换为超链接。调用格式:=HYPERLINK(链接,标题)或者:=HYPERLINK(链接)具体可参考Hyperlink函数Microsoft官方文档视频演示:......
  • Vuejs+WebApi导出Excel
    前后端分离,前端Vuejs,后端.Net6WebApi后端代码1publicclassSalesReportController:BaseController2{3privateSerilog.ILogger_log=GetLogger<SalesReportController>();4privatereadonlyISqlSugarClient_db;5privateIHostEnvironme......
  • pytest -k 参数 从多个py文件中 指定要运行的方法
    #D:\pythonProject0726\test_case\test_one.pyimporttimedefsetup_module():print('准备测试数据')defteardown_module():print('清理测试数据')deftest_oneone():ex=1real=1time.sleep(3)print('1==1')asse......
  • pytest 中添加线程
    #D:\pythonProject0726\test_case\test_one.pyimporttimedefsetup_module():print('准备测试数据')defteardown_module():print('清理测试数据')deftest_one():ex=1real=1time.sleep(3)print('1==1')assert......
  • C# 解决导出Excel长数字变成10次幂
    在做项目的时候遇到一个bug,当编号(仅针对纯数字)长度达到一定长度,比如超过11位之后,导出Excel后就转换成了10的幂次方。这是Excel特有的转换,而且当数字的位数达到15,以后的数字就会全部转化成0,造成精度的缺失。这显然是不符合要求的。 原始的赋值代码是这样的。dr["编号"]......
  • pytest 对数据的前置 后置处理
     上图示例defsetup_module():print('准备测试数据')defteardown_module():print('清理测试数据')deftest_one():ex=1real=1assertex==real仅在模块中执行一次......
  • 用navicat导出数据csv比excel快多了
    ......