• 接口测试程序部分


    1.设计思路:

    1.测试数据从excel中读取,excel表格设计如下:

     requests:需要将get方式和post方式的统一从params一栏读取。所以第一步:需要将requests.get(params=,cookies=,headers=)和requests.post(json=,data=,cookies=,headers=)统一封装为一个类中的某个方法,取名HttpServer 类request方法。第二部:再在base文件,再封装为一个方法get_response:创建这个对象,调用该对象的request方法。

    调用方法: result2=Httpserver.httpserver().request(url=url,methond=method,**Datatest)

    excel:从表格获取数据。所以第一步:创建Readexcel类:该类自动获取文件路径,并且开启文件,读取所有数据。第二步:在base文件封装一个get_excel方法(文件名,sheet名),创建Readexcel对象,调用该对象的方法

    base:

    get_url(endpoint)

    get_cookies(username)

    get_excel(filename,sheetname)

    get_response(url,method,**testdata)

    get_get()

    get_post()

    1.读取ini配置文件:

     1 ini文件:
     2 [URL]
     3 url_base=http://study-perf.qa.netease.com
     4 
     5 
     6 import configparser   >>导入模块
     7 cf = configparser.ConfigParser()     >>创建对象
     8 conf_path=xxx                             >>ini文件路径
     9 cf.read( conf_path)                       >>先read
    10 url=cf.get('URL','url_base')            >>再get

    2.os获取文件路径及路径拼接

    os.path模块
    os.path.dirname(path) #返回文件相对路径
    os.path.realpath(path)  #返回path的真实路径
    os.path.abspath("文件名"):#返回绝对路径
    os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径
    os.path.split(path)  #把路径分割成dirname和basename,返回一个元组
    os.path.dirname(os.path.dirname(os.path.abspath("文件名"))): 表示获取当前文件夹上一层目录
    
    __file__
    __file__ 是用来获得模块所在的路径的,这可能得到的是一个相对路径,比如在脚本test.py中写入:
    
    #!/usr/bin/env python
    print __file__
    
    按相对路径./test.py来执行,则打印得到的是相对路径,
    按绝对路径执行则得到的是绝对路径。
    而按用户目录来执行(~/practice/test.py),则得到的也是绝对路径(~被展开)
    所以为了得到绝对路径,我们需要 os.path.realpath(__file__)。

     3.excel

    import xlrd
    import os
    '''1.获取excel文件路径  '''
    def excel_path(excelname):
        path=os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
        path = ''.join(([path, '/test_case/excel_data']))
        path=os.path.join(path,excelname)
        return path
    
    
    2.打开并获数据
    
    def readexcel(excelname,sheetname):
        path=excel_path(excelname)
        xl=xlrd.open_workbook(path)
        xl=xl.sheet_by_name(sheetname)
        nrow=xl.nrows
        datas=[]
        for i in range(nrow):
            datas.append(xl.row_values(i))
        return datas
    
    
    
    if __name__ == '__main__':
    
        data=readexcel('user_login_test.xlsx','alldata')
        print(data)


    >>

    [['api_name', 'endpoint', 'method', 'desprip'], ['获取skulist接口', '/common/fgadmin/login', 'post', '传递params']]

    传参方式=data[1][2]


    如果excel中的值为:{‘json’:'xxx','header':'xxx'}
    通过data获取出来的值实为 str格式,不是字典,需通过eval()转换为字典。
  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/testeranna/p/7687049.html
Copyright © 2020-2023  润新知