1,先看一下接口测试用例

2,文件1:写get和post模板

import requests
class PostGetModels: def isMethod(self,url,data,method,headers,aeerts,**kw):
if method == 'GET':
self.send_get(url,headers,data)
else:
result = self.send_post(url,data,headers)
return result
def send_post(self,url,data,headers,**kw):
response = requests.post(url=url,data=data,headers=headers)
result = response.text
return result def send_get(self,url,params,headers,**kw):
response = requests.get(url=url,params=params,headers=headers)
result = response.text
return result 3,文件2:通过传参读取进行接口调用
import requests
import json
import unittest
from api实现.PostGetModels import PostGetModels
class TestApi:
def test_http(self,url,data,method,headers,asserts):
pm = PostGetModels()
response = pm.isMethod(url,data,method,headers,asserts)
if json.loads(response)['success'] == asserts:
print('case执行结果---->pass')
else:
print('case执行结果---->failed')
4,文件3:读取数据文件excel
'''
参数化
'''
import xlrd,xlwt,json
from api实现.读取参数化接口说明 import TestApi
class ReadFileData: def __init__(self):
self.tp = TestApi()
def readFileData(self):
filename='C:\\Users\\Administrator\\Desktop\\接口测试用例.xls'
#读取文件
workbook = xlrd.open_workbook(filename)
#方法一;获取文件中所有的表
# sheets = workbook.sheet_names() #['Sheet1', 'Sheet2', 'Sheet3']
# worksheet = workbook.sheet_names()[0]
# print(worksheet) #得到表名称
#方法二:通过索引获取
#sheets = workbook.sheet_by_index(0)#得到一个内存地址
# 方法三:通过表名称获取
sheets = workbook.sheet_by_name('接口用例')#得到一个内存地址
'''
sheets的名称,行数,列数
sheets.name 表名称
sheets.nrows 行数
sheets.ncols 列数
'''
nums = sheets.nrows #得到行数
#获取整行整列的值-->得到的是个列表
#rows = sheets.row_values(0) #获取第一行的标题
#cols = sheets.col_values(1) #获取第二列的数据
# 获取单元格内容
# print(sheets.cell(1, 0)) #1行0列
# print(sheets.cell_value(2, 0))#2行0列
# print(sheets.row(1)[0])#1行0列
# # 获取单元格内容的数据类型
# print(sheets.cell(1, 0).ctype)
for i in range(1,nums):
rows = sheets.row_values(i)
#调用接口函数
print('测试用例编号:',rows[0],'测试点:',rows[1])
url=rows[3]+rows[4]
#print(url)
method=rows[2]
data=eval(rows[5]) #eval可以将普通字符串转为字典
asserts=rows[-2]
headers=''
self.tp.test_http(url,data,method,headers,asserts)
rf = ReadFileData()
print(rf.readFileData())

最新文章

  1. chrome中获取元素的样式
  2. extern
  3. Node.js Express 框架 POST方法
  4. ArcGIS中定义图框样式
  5. sass小总结
  6. C语言中fseek函数
  7. IOS OC声明变量在@interface括号中与使用@property的区别(转载)
  8. asp.net 权限问题
  9. 图像二值化----otsu(最大类间方差法、大津算法)
  10. Apache Mina原理及典型例子分析
  11. dll文件已经引用,但using找不到命名空间
  12. ajax相关
  13. javascript:void(0)的作用示例
  14. WP8.1小梦词典开发2:百度翻译API使用
  15. java字符串类型常量拼接与变量拼接的区别
  16. 通过注解配置Bean
  17. jenkins 多版本 jdk
  18. Easyui入门视频教程 第09集---登录完善 图标自定义
  19. hdu3065 病毒侵袭持续中 AC自动机入门题 N(N <= 1000)个长度不大于50的模式串(保证所有的模式串都不相同), 一个长度不大于2000000的待匹配串,求模式串在待匹配串中的出现次数。
  20. Javascript设计模式理论与实战:工厂方法模式

热门文章

  1. Java入门教程一(Java简介)
  2. KEMET推出新的多层陶瓷电容器,用于市电供电的应用
  3. pika使用报错queue_declare() missing 1 required positional argument: 'queue'
  4.  前端面试题目总结1
  5. sql02
  6. LeetCode:两数之和、三数之和、四数之和
  7. @常见的远程服务器连接工具:Xshell与secureCRT的比较!!!(对于刚接触的测试小白很有帮助哦)
  8. 《52讲轻松搞定网络爬虫》读书笔记 —— HTTP基本原理
  9. C++ 在界面中添加图片
  10. Spring Ioc 依赖查找