接口测试程序部分

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()转换为字典。

 

posted @ 2017-10-18 15:47  必有回响  阅读(213)  评论(0编辑  收藏  举报