python接口自动化测试--批量读取数据
为了便于维护,python接口自动化测试用例可以利用xlrd模块读取excal表格进行数据分离。我们可以利用xlrd模块的row_values()和cell_value()两种方法读取Excal表格。
一、首先,写一个运行测试用例的Test_Main类:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import unittest import json
class TestDemo(unittest.TestCase):
def setUp(self):
pass
def test_Demo1(self):
xmlhead = xxxxxx
xmlbody = xxxxxx
data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} #xmlhead、xmlbody为xml格式的报文头、报文体
url = 'http://xxxxxx'
result = requests.post(url,data=data)
try:
self.assertEqual(result.status_code, 200)
print ("用例测试通过")
except Exception as e:
print e
print "用例测试不通过" #之前写的是格式为print (e, '用例测试不通过'),打印出来的语句非utf-8格式,因此在此写了两个print
def tearDown(self):
pass
if __name__ == '__main__':
unittest.run()
代码运行正常
二、开始写读取excal的公共方法,这里运用row_values()方法批量读取单元格的值。如下创建python文件read_excal:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import xlrd
class ReadXml(object):
def __init__(self,path = ''):
self.url = xlrd.open_workbook(path) #打开文件
def get_Datasheet_by_name(self,sheet):
self.sheet = self.url.sheet_by_name(sheet) #获取sheet页的名字
return self.DataList()
def DataList(self):
list = []
for row in range(0, self.sheet.nrows): #nrows()方法为获取某一sheet页的行数
resu = self.sheet.row_values(row) #row_values()批量获取单元格数据
list.append(resu)
return list
三、读取excal文件公共方法写完后,运行代码无问题。再写一个调用read_excal的python文件base:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import read_excal
def get_data(self,sheet,row,col):
filepath = read_excal.ReadXml('D:\xx\xx\\xx.xlsx') #在具体文件名前面可以加‘\’,但在本地运行时有时加一个'\'保存,所以加了'\\'确保程序正常运行
ResultData = filepath.get_Datasheet_by_name(sheet)
return ResultData
代码运行正常
四、现在可以对Test_Main类进行微调了,部分代码如下:
# -*- coding: UTF-8
-*- # -*- coding: cp936 -*-
import requests
import unittest
import base #导入base模块
class TestDemo(unittest.TestCase):
def setUp(self):
self.xmlhead = base.get_data('xmlhead') #读取'xmlhead'页的所有数据
self.xmlbody = base.get_data('xmlbody') #读取'xmlbody'页的所有数据
def test_Demo1(self):
xmlhead = self.xmlhead[0][0] #获取'xmlhead'页的第1行第1列数据
xmlbody = self.xmlbody[13][1] #获取'xmlbody'页的第14行第2列数据
data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody} #xmlhead、xmlbody为xml格式的报文头、报文体
..............................
..............................
运行代码,程序调试成功
至此,批量读取Excal单元格值的方法就写到这里。
python接口自动化测试--批量读取数据的更多相关文章
- 一篇文章告诉你Python接口自动化测试中读取Text,Excel,Yaml文件的方法
前言 不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml.今天讲讲如何读取文件数据 Python也可以读取ini文件,传送门 记住一点:测试的数据是不能写死在代码里面 ...
- python - 接口自动化测试 - basic_data - 基础数据参数化方法封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: basic_data.py @ide: PyCharm C ...
- python - 接口自动化测试 - ReadConfig - 读取配置文件封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: read_config.py @ide: PyCharm ...
- python - 接口自动化测试 - ReadExcel - 读取测试数据封装
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: read_excel.py @ide: PyCharm C ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
- python接口自动化测试--数据分离读取Excal指定单元格数据
上一篇博客讲了怎么批量读取Excal单元格数据,现在咱们说一下怎么读取Excal指定单元格数据. 一.首先建一个Test_Main类 #!/usr/bin/python # -*- coding: U ...
随机推荐
- 搜索引擎学习(六)Query的子类查询
Query的子类查询 PS:这是通用代码,下面的子类查询调用到的时候就不再写这部分的具体的实现过程了 /** * 构造IndexSearcher对象 * * @return * @throws Exc ...
- Python3 环境搭建 保姆式 详细教程!真手把手教学!
本文我们将向大家介绍如何在本地搭建 Python3 开发环境. Python3 可应用于多平台包括 Windows.Linux 和 Mac OS X. Unix (Solaris, Linux, Fr ...
- 关于kafka中consumer subscribe与asssign的理解
kafka中consumer subscribe与asssign的理解: https://blog.csdn.net/weixin_34332905/article/details/91392030
- NLP常见任务
借助BERT论文, 梳理下自然语言处理当前常见的任务. NLP任务 根据判断主题的级别, 将所有的NLP任务分为两种类型: token-level task: token级别的任务. 如完形填空(Cl ...
- Layer层自定义
keras允许自定义Layer层, 大大方便了一些复杂操作的实现. 也方便了一些novel结构的复用, 提高搭建模型的效率. 实现方法 通过继承keras.engine.Layer类, 重写其中的部分 ...
- 日志分析平台ELK之前端展示kibana
之前的博客一直在聊ELK集群中的存储.日志收集相关的组件的配置,但通常我们给用户使用不应该是一个黑黑的shell界面,通过接口去查询搜索:今天我们来了ELK中的前端可视化组件kibana:kibana ...
- 路由总结之静态、RIP、OSPF、IS-IS、BGP和策略路由
路由无疑是当今网络的核心,看到浩如烟海的网络资料,可以让人皓首穷经啊,而且都是浩浩荡荡几百页,所以想搞简单点. 静态路由 静态路由无疑是最简单,也是最基本的. Ip route-static(指定是静 ...
- C++ 中explicit的作用
转载:https://www.cnblogs.com/diligenceday/p/5781408.html C++ 中explicit的作用 explicit作用: 在C++中,explicit ...
- Arduino重置-复位问题
转自: https://blog.csdn.net/y511374875/article/details/77845240 三种方式手动重启Arduino 1.Arduino板上重新编写代码时,Ard ...
- matlab中figure创建图窗窗口
来源:https://ww2.mathworks.cn/help/matlab/ref/figure.html?searchHighlight=figure&s_tid=doc_srchtit ...