zoukankan      html  css  js  c++  java
  • python+request+Excel做接口自动化测试

    转载:https://www.cnblogs.com/LinxiHuang/p/9297230.html

    python+request+Excel做接口自动化测试

     

    request是python的一个http客户端库,与urllib、urllib2类似。但是使用比urllib2简单。
    安装request : pip install requests
    1、POST方法
    #封装http POST 函数,返回请求response
    def httpPost(self,keyword,url):
    data=json.dumps(keyword)
    headers={"Content-Type":"application/json"}
    res=requests.post(url,data=data,headers=headers)
    responseJson=res.json()
    return responseJson
    2、GET方法
    #封装http Get函数,返回response
    def httpGet(self,keyword,url,data):
    headers={"Content-Type":"application/json"}
    res=requests.get(url,data=data,headers=headers)
    responseJson=res.json()
    return responseJson
    3、封装request请求函数
    #封装请求函数
    def httpGetOrPost(self,method,url,data):
    # global mres
    headers = {"Content-Type": "application/json"}
    if method in "get":
    mres=requests.get(url,data=data,headers=headers)
    elif method == "post":
    #postdata = json.dumps(data)
    mres=requests.post(url,data=data,headers=headers)
    elif method in"put":
    mres=requests.put(url,data=data,headers=headers)
    elif method in "delete":
    mres=requests.delete(url,data=data,headers=headers)
    else:
    mres = requests.post(url, data=data, headers=headers)
    print("错误")
    # responseJson=mres.json()
    return mres.json()

    进行测试:
    def test0001(self):
    self.url="http://apptest.buddyniu.com/api/apps/BUDDY_API_TEST/accounts/login"
    self.method="post"
    self.data={"password":"e10adc3949ba59abbe56e057f20f883e","clientSecret":"a123af4e331cf61c0324cd43cbc2135d","accountId":"13590404631"}
    res=self.httpGetOrPost(self.method,self.url,self.data)
    print res


    5、使用excel
    由于我的系统为win10,excel后缀为xlsx,故需要使用openpyxl 模块
    大概使用方法如下:
    def readSheet(self):
    wb = load_workbook(r'd:apitestcase.xlsx')
    # 获得所有sheet的名称
    print(" 获得所有sheet的名称")
    print(wb.get_sheet_names())
    # 根据sheet名字获得sheet
    a_sheet = wb.get_sheet_by_name('apitestcase')
    # 获得sheet名
    print(a_sheet.title)
    # 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
    sheet = wb.active
    # 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
    b4 = sheet['B1']
    print(b4.value)
    # 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
    b4_too = sheet.cell(row=4, column=2)
    print(b4_too.value)

    6、封装excel函数
    def readSheetdata(self,cell):
    wb=load_workbook(r'd:apitestcase.xlsx')
    sheet=wb.active
    value=sheet[cell]
    print(value.value)
    return value.value

    7、测试读取excel中的值,之后做请求

    excel表格内容大概如下:

    这里是第一个测试

    def test00001(self):
    self.url=self.readSheetdata('C2')
    self.data=self.readSheetdata('D2')
    self.method=self.readSheetdata('E2')
    res=self.httpGetOrPost(self.method,self.url,self.data)

    测试结果:


    注:
    导入excel,这里使用openpyxl ,xlxs后缀的一般使用openpyxl 
    from openpyxl import load_workbook
    载入utf8编码
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')

  • 相关阅读:
    欧几里得算法及扩展欧几里得(含)
    RP
    P1734_最大约数和
    The 2017 ACM-ICPC Asia East Continent League Final记录
    【数据结构】bzoj1651专用牛棚
    【数据结构】bzoj1455罗马游戏
    【数据结构】bzoj1636/bzoj1699排队
    【数据结构】bzoj3747Kinoman
    【计算几何】奇特的门
    Topcoder SRM 608 div1 题解
  • 原文地址:https://www.cnblogs.com/yuany66/p/11476852.html
Copyright © 2011-2022 走看看