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())

python分布式接口,参数化实战二的更多相关文章

  1. Jmeter之登录接口参数化实战

    为了纪念我走过的坑(为什么有些简单的问题就是绊住我了,还是不够细啊) Jmeter之接口登录参数化实战 因为想要在登录时使用不同的数据进行测试,所以我选择了将数据进行参数化.因为涉及到新建一个接口的功 ...

  2. 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库

    引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...

  3. 基于Python的接口自动化实战-基础篇之读写配置文件

    引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...

  4. Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验

    (一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...

  5. [原创].NET 分布式架构开发实战之二 草稿设计

    原文:[原创].NET 分布式架构开发实战之二 草稿设计 .NET 分布式架构开发实战之二 草稿设计 前言:本篇之所以称为草稿设计,是因为设计的都是在纸上完成的.反映了一个思考的过程. 本篇的议题如下 ...

  6. Python爬虫实战二之爬取百度贴吧帖子

    大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...

  7. Python分布式爬虫开发搜索引擎 Scrapy实战视频教程

    点击了解更多Python课程>>> Python分布式爬虫开发搜索引擎 Scrapy实战视频教程 课程目录 |--第01集 教程推介 98.23MB |--第02集 windows下 ...

  8. 转 Python爬虫实战二之爬取百度贴吧帖子

    静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...

  9. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

随机推荐

  1. nginx 命令行参数 启动 重启 重载 停止

    今天和大家分享关于 nginx 的一些参数使用 首先,你应该安装了nginx CentOS 安装 nginx 这是很早之前的一篇博客,可以参考. 之前,我们如何去操作 nginx ##简单粗暴法 pk ...

  2. 使用thymeleaf模板实现博客评论的异步刷新

    使用thymeleaf模板实现博客评论的异步刷新 最简单的一个要求:用户可以在博客下面进行评论,然后评论后点击提交后直接上传到数据库,并且局部刷新 这是前端页面的展示,使用的semanticUI进行构 ...

  3. python 实现各种进度条

    1. 时间进度条 class Tiao(object): def __init__(self): self.obj1 = datetime.timedelta(seconds=1) self.var ...

  4. 目标用户偏好指数Target Group Index分析

    目标用户偏好指数Target Group Index分析 TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势. TGI指数计算公式 = 目标群体中具有某 ...

  5. 【技巧】歪脑筋优化flexbox瀑布流布局方案

    效果先行 需求 在大量"不定宽"元素并排的布局模式下,上图是我们想要的最佳布局但是FlexBox布局虽然枪弹但并不能完全呈现以上布局,于是我们需要结合FlexBox作下小的改动即可 ...

  6. 处理 Vue 单页面 SEO 的另一种思路

    vue-meta-info 官方地址: https://github.com/monkeyWang... (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender- ...

  7. 使用web写UI, 使用js对接C++项目, 提高开发效率

    ppt资源下载地址https://www.slidestalk.com/s/webui_nodejs_cmdlrx

  8. sublime Text3 前端常用插件

    sublime Text3 前端常用插件 - File Switching (文件切换) --- Sublime Text提供了一个非常快速的方式来打开新的文件.只要按下Ctrl+ P并开始输入你想要 ...

  9. 续python学习(一)

    接上面没写完的知识点继写. 当然,这些知识点都很简单,可能没必要花费太多时间去记忆,多写写代码就会了. 5.字符串的使用.索引和切片是字符串主要的两个应用.索引:顾名思义就是找出某个字符在一个字符串中 ...

  10. 用户HTTP请求过程简单剖析

    用户终端(如电脑浏览器)发起某个url请求,如http://www.baidu.com/1.jpg. 1.电脑首先会对www.baidu.com进行解析请求,获得域名对应的服务器IP. 2.电脑对服务 ...