zoukankan      html  css  js  c++  java
  • python分布式接口,参数化实战二

    1,先看一下接口测试用例

    2,文件1:写get和post模板

    import requests
    class PostGetModels:

    def isMethod(self,url,data,method,headers,aeerts,**kw):
    if method == 'GET':
    self.send_get(url,headers,data)
    else:
    result = self.send_post(url,data,headers)
    return result
    def send_post(self,url,data,headers,**kw):
    response = requests.post(url=url,data=data,headers=headers)
    result = response.text
    return result

    def send_get(self,url,params,headers,**kw):
    response = requests.get(url=url,params=params,headers=headers)
    result = response.text
    return result

    3,文件2:通过传参读取进行接口调用
    import requests
    import json
    import unittest
    from api实现.PostGetModels import PostGetModels
    class TestApi:
    def test_http(self,url,data,method,headers,asserts):
    pm = PostGetModels()
    response = pm.isMethod(url,data,method,headers,asserts)
    if json.loads(response)['success'] == asserts:
    print('case执行结果---->pass')
    else:
    print('case执行结果---->failed')
    4,文件3:读取数据文件excel
    '''
    参数化
    '''
    import xlrd,xlwt,json
    from api实现.读取参数化接口说明 import TestApi
    class ReadFileData:

    def __init__(self):
    self.tp = TestApi()
    def readFileData(self):
    filename='C:\Users\Administrator\Desktop\接口测试用例.xls'
    #读取文件
    workbook = xlrd.open_workbook(filename)
    #方法一;获取文件中所有的表
    # sheets = workbook.sheet_names() #['Sheet1', 'Sheet2', 'Sheet3']
    # worksheet = workbook.sheet_names()[0]
    # print(worksheet) #得到表名称
    #方法二:通过索引获取
    #sheets = workbook.sheet_by_index(0)#得到一个内存地址
    # 方法三:通过表名称获取
    sheets = workbook.sheet_by_name('接口用例')#得到一个内存地址
    '''
    sheets的名称,行数,列数
    sheets.name 表名称
    sheets.nrows 行数
    sheets.ncols 列数
    '''
    nums = sheets.nrows #得到行数
    #获取整行整列的值-->得到的是个列表
    #rows = sheets.row_values(0) #获取第一行的标题
    #cols = sheets.col_values(1) #获取第二列的数据
    # 获取单元格内容
    # print(sheets.cell(1, 0)) #1行0列
    # print(sheets.cell_value(2, 0))#2行0列
    # print(sheets.row(1)[0])#1行0列
    # # 获取单元格内容的数据类型
    # print(sheets.cell(1, 0).ctype)
    for i in range(1,nums):
    rows = sheets.row_values(i)
    #调用接口函数
    print('测试用例编号:',rows[0],'测试点:',rows[1])
    url=rows[3]+rows[4]
    #print(url)
    method=rows[2]
    data=eval(rows[5]) #eval可以将普通字符串转为字典
    asserts=rows[-2]
    headers=''
    self.tp.test_http(url,data,method,headers,asserts)
    rf = ReadFileData()
    print(rf.readFileData())



  • 相关阅读:
    .NET西安社区 [拥抱开源,又见 .NET] 第二次活动简报
    HttpClient在.NET Core中的正确打开方式
    西安活动 | 2019年1月13号 "拥抱开源, 又见.NET" 线下交流活动报名进行中
    基于IdentityServer4 实现.NET Core的认证授权
    dnSpy 强大的.Net反编译软件
    .NET Core中实现AOP编程
    Why DDD and layered architecture
    领域驱动设计之-前言
    load average 定义(网易面试)
    sendfile“零拷贝”和mmap内存映射
  • 原文地址:https://www.cnblogs.com/hally/p/9107885.html
Copyright © 2011-2022 走看看