zoukankan      html  css  js  c++  java
  • 接口测试程序部分

    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()转换为字典。
  • 相关阅读:
    [转] 在安卓设备上使用 Chrome 远程调试功能
    如何在移动设备上调试网页
    [转] 函数式编程初探
    如何简单区分Web前后端与MVC
    [转] 钉钉的H5性能优化方案
    js 数组赋值问题 :值传递还是引用?
    (转载)How browsers work--Behind the scenes of modern web browsers (前端必读)
    [转] React 最佳实践——那些 React 没告诉你但很重要的事
    RAII惯用法详解
    [2] 智能指针
  • 原文地址:https://www.cnblogs.com/testeranna/p/7687049.html
Copyright © 2011-2022 走看看