• python+request+excel做接口自动化测试


    request是python的一个http客户端库,与urllib、urllib2类似。但是使用比urllib2简单。
    安装request : pip install requests
    1、POST方法

    1. #封装http POST 函数,返回请求response
    2. def httpPost(self,keyword,url):
    3. data=json.dumps(keyword)
    4. headers={"Content-Type":"application/json"}
    5. res=requests.post(url,data=data,headers=headers)
    6. responseJson=res.json()
    7. return responseJson


    2、GET方法

    1. #封装http Get函数,返回response
    2. def httpGet(self,keyword,url,data):
    3. headers={"Content-Type":"application/json"}
    4. res=requests.get(url,data=data,headers=headers)
    5. responseJson=res.json()
    6. return responseJson


    3、封装request请求函数

    1. #封装请求函数
    2. def httpGetOrPost(self,method,url,data):
    3. # global mres
    4. headers = {"Content-Type": "application/json"}
    5. if method in "get":
    6. mres=requests.get(url,data=data,headers=headers)
    7. elif method == "post":
    8. #postdata = json.dumps(data)
    9. mres=requests.post(url,data=data,headers=headers)
    10. elif method in"put":
    11. mres=requests.put(url,data=data,headers=headers)
    12. elif method in "delete":
    13. mres=requests.delete(url,data=data,headers=headers)
    14. else:
    15. mres = requests.post(url, data=data, headers=headers)
    16. print("错误")
    17. # responseJson=mres.json()
    18. return mres.json()
    19. 进行测试:
    20. def test0001(self):
    21. self.url="http://apptest.buddyniu.com/api/apps/BUDDY_API_TEST/accounts/login"
    22. self.method="post"
    23. self.data={"password":"e10adc3949ba59abbe56e057f20f883e","clientSecret":"a123af4e331cf61c0324cd43cbc2135d","accountId":"13590404631"}
    24. res=self.httpGetOrPost(self.method,self.url,self.data)
    25. print res


    5、使用excel

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

    6、封装excel函数

    1. def readSheetdata(self,cell):
    2. wb=load_workbook(r'd:\apitestcase.xlsx')
    3. sheet=wb.active
    4. value=sheet[cell]
    5. print(value.value)
    6. 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')

    Python接口自动化测试零基础入门到精通(2023最新版)

  • 相关阅读:
    es6两个数组取交集、并集、差集、补集
    DevExpress WinForms图表组件 - 直观的数据信息呈现方式!(二)
    GD32学习1——环境搭建keil5
    2004NOIP普及组真题 4. 火星人
    全球第4大操作系统(鸿蒙)的软件后缀.hap
    springboot写一个简单的接口样例
    100天精通Python(数据分析篇)——第51天:numpy函数进阶
    SpringMVC中的综合案例
    华为配置AP接入GPON网络配置示例
    Java构建器的陷阱:@SuperBuilder 和 @Builder 的坑及代码演示
  • 原文地址:https://blog.csdn.net/dad22211/article/details/133990137