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. Vue组件传递数据

    组件命名 1.字母全小写且必须包含一个连字符 my-componnect 2.使用 kebab-case(短横线分隔命名) 定义一个组件时,你也必须在引用这个自定义元素时使用 kebab-case,例 ...

  2. openpyxl(python操作Excel)

    一.安装 >>> pip install openpyxl import openpyxl 二.常用操作 1.创建与保存一个工作簿 wb = openpyxl.Workbook() ...

  3. sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理

    sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理 原文链接http://www.sqlservercentral.com/articles/Stairway+Series/73785/ ...

  4. hue初识

    Hue Web应用的架构 Hue 是一个Web应用,用来简化用户和Hadoop集群的交互.Hue技术架构,如下图所示,从总体上来讲,Hue应用采用的是B/S架构,该web应用的后台采用python编程 ...

  5. 渗透之——MSF提权

    在WEB渗透中当我们拿到webshell了,我们可以试试用MSF(metasploit)来进行提权,在MSF里meterpreter很强大的! 我们先用msfvenom生成一个EXE的木马后门. ms ...

  6. file_put_contents生成ansi文件

    $line_body = array('张三','李四','王五'); $line_body = array_map(function ($element){return iconv('UTF-8', ...

  7. css的相对定位与绝对定位

    css相对定位:是相对于它本身最近的父级定位 css绝对定位:是对于它本身最接近的参照物来定位,如果没有就对于body来定位

  8. Centos 安装rabbitmq

    此处是通过源码进行安装的rabbitmq,参考:http://www.cnblogs.com/huangxincheng/p/6006569.html 1.源码包下载 ① erlang : http: ...

  9. Java自学路线图之Java框架自学

    Java自学路线图的框架分为两个阶段,第一阶段的Java框架包含六个内容:MyBatis,Spring,SpringMVC,Maven高级,Git,Dubbo. 在Java自学过程中掌握框架的使用,对 ...

  10. 龙叔拿了20几个offer,原因竟有些泪目...

    我是龙叔,一个分享互联网技术和心路历程的大叔. 本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles ...