为了便于维护,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接口自动化测试--批量读取数据的更多相关文章

  1. 一篇文章告诉你Python接口自动化测试中读取Text,Excel,Yaml文件的方法

    前言 不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml.今天讲讲如何读取文件数据 Python也可以读取ini文件,传送门 记住一点:测试的数据是不能写死在代码里面 ...

  2. python - 接口自动化测试 - basic_data - 基础数据参数化方法封装

    # -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: basic_data.py @ide: PyCharm C ...

  3. python - 接口自动化测试 - ReadConfig - 读取配置文件封装

    # -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: read_config.py @ide: PyCharm ...

  4. python - 接口自动化测试 - ReadExcel - 读取测试数据封装

    # -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: read_excel.py @ide: PyCharm C ...

  5. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  6. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  7. 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 ...

  8. python接口自动化测试七:获取登录的Cookies

    python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...

  9. python接口自动化测试--数据分离读取Excal指定单元格数据

    上一篇博客讲了怎么批量读取Excal单元格数据,现在咱们说一下怎么读取Excal指定单元格数据. 一.首先建一个Test_Main类 #!/usr/bin/python # -*- coding: U ...

随机推荐

  1. 刷题 [网鼎杯 2018]Fakebook

    解题思路 首先登陆页面发现是这样的: 查看源码 源码很正常,也没有什么特别的 web目录扫描 我用的是dirmap工具扫描,扫描结果保存在一个txt文件中,结果可知没什么后台. robots.txt ...

  2. jdk在linux下安装、配置环境变量

    1.jdk下载: 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 2. 3. 4.解压jdk到/usr/loca ...

  3. SpringMVC自定义日期转换器

    一.创建自定义日期转换器类 1 public class StringToDateConverter implements Converter<String,Date> { 2 @Over ...

  4. Django新手图文入门教程

    版权所有,转载需注明来源! 本文是广受大家欢迎的<Django1.10新手图文入门教程>的2.1版本升级篇,原1.10版本传送门点击我 本文面向有一些的Python基础,但刚接触web框架 ...

  5. Unity Shader 00 - 梳理 Unity Shader 的基本结构

    0x00 写在前面 之前一直在阅读 The Book of Shaders 一书,为什么会开始写 Unity Shader 呢?一方面,因为该书目前尚未完结,写下此文时已阅读到该书的最新章节:另一方面 ...

  6. JavaCV FFmpeg采集摄像头YUV数据

    前阵子使用利用树莓派搭建了一个视频监控平台(传送门),不过使用的是JavaCV封装好的OpenCVFrameGrabber和FFmpegFrameRecorder. 其实在javacpp项目集中有提供 ...

  7. 如何检测ASP中的浏览器。NET与浏览器文件

    介绍 ASP.NET是一个用于使用Web表单.MVC.Web API和SignalR(这是官方定义)构建Web应用程序的高生产力框架.它是在.net框架上开发RESTful应用程序或使用HTML.CS ...

  8. NOI 2012 【迷失游乐园】

    这道题,额,反正我是刚了2天,然后就萎了......(是不是觉得我很菜) 题目描述: 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩. 进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐 ...

  9. 《New Horizon College English》 (Third Edition) -长篇阅读(Skmming and Scanning)

    <New Horizon College English>(Third Edition) <新视野大学英语>(第三版) 长篇阅读(Skmming and Scanning) 总 ...

  10. 西安交通大学c++[mooc]课后题12章(只有后两题)

    不是从第一题开始的,因为我刚准备把代码粘到CSDN上面,可以给自己看,也有可能启发后来者. 机会是留给有准备的人的      --路易斯·巴斯德 先写下第12周慕课学习总结吧! 多态就是将运算符重载, ...