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

栏目: Python · 发布时间: 6年前

内容简介:python接口自动化测试--数据分离读取Excal指定单元格数据

上一篇博客讲了怎么批量读取Excal单元格数据,现在咱们说一下怎么读取Excal指定单元格数据。

一、首先建一个Test_Main类

#!/usr/bin/python 
# -*- coding: UTF-8 -*-  
import requests 
import unittest
class TestDenmo(unittest.TestCase):     
  def setUp(self):         
    pass          
  def test_demo1(self):         
    print ("用例一开始执行")         
    url = '' #此处填写请求的url        
    xmlhead = '' #工作中数据以json、xml为主,此处以xml格式为例
    xmlbody = ''         
    data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody}         
    result = requests.post(url, data =data)         
    try:           
      self.assertEqual(result.status_code, 200)           
      print ("用例一测试通过")         
    except Exception as e:           
      print e           
      print "用例一测试不通过"                 
  def tearDown(self):         
      pass      
if __name__ == '__main__':    
  unittest.run()
二、现在开始写读取Excal指定单元格的方法了。建一个 python 文件Read_Excal:
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import xlrd

class get_data(object):
    def __init__(self, path = ''):
        self.filepath = xlrd.open_workbook(path)#打开文件

    def datasheet_by_name(self,sheet,row,col):
        self.sheetname = self.filepath.sheet_by_name(sheet) #打开Excal中sheet页名称为"sheet"的表格
        self.data = self.sheetname.cell_value(row,col) #获取第"row"行第"col"列的数据
        return self.data

#以下代码调试用,调试正常可删掉或注释掉
if __name__ == '__main__':
    filepath = get_data(path)  #此处path填具体路径
    resultdata = filepath.datasheet_by_name(sheet,row,col) #此处三个参数赋予具体值
    print resultdata
 三、写完读取excal的get_data类后,可以封装一个方法调用get_data.因此建一个python文件base,代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from Read_Excal import get_data
def result_need(sheet,row,col):
    resudata = get_data(path).datasheet_by_name(sheet,row,col)#可以在此处赋予path值,也可在Test_Main类中赋值,为了简便,个人感觉在此处赋值合适些
    return resudata

四、写完了调用get_data类的公共方法,咱们回过头来看一下Test_Main类.可以把Test_Main类里的数据分离到Excal中,优化代码如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import requests
import unittest
from base import result_need #导入公共方法base
class TestDenmo(unittest.TestCase):
    def setUp(self):
        pass
    def test_demo1(self):
        print ("用例一开始执行")
        url = result_need('url',0,0) #此次把URL放到Excal中进行读取。为了便于维护和安全,也可把URL进行多次分离封装后,放到setUp()方法中
        xmlhead = result_need('xmlhead',0,0)
        xmlbody = result_need('xmlbody',13,0)
        data = {'xmlhead' : xmlhead, 'xmlbody' : xmlbody}
        result = requests.post(url, data =data)
        try:
          self.assertEqual(result.status_code, 200)
          print ("用例一测试通过")
        except Exception as e:
          print e
          print "用例一测试不通过"
    def tearDown(self):
        pass
if __name__ == '__main__':
    unittest.run()

代码运行成功,至此,所有参数数据和代码分离。结合上一篇关于row_values()批量获取Excal单元格数据来看,个人感觉cell_value()获取指定单元格数据的方法,所使用的代码更简洁。自动化测试过程中,可以以此为模板添加用例。也可以在此代码的基础上继续优化,和前端配合开发一个适合自己公司的简易自动化测试工具,那样只改一下Excal里的参数,测试起来会更方便。


以上所述就是小编给大家介绍的《python接口自动化测试--数据分离读取Excal指定单元格数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

玻璃笼子

玻璃笼子

[美]尼古拉斯·卡尔 / 杨柳 / 中信出版社 / 2015-11 / 49.00元

这是一本关于自动化的书,它提醒我们自动化对人类的影响,人们心安理得享受技术带来的便利却忽视了,它已经渗透进了生活和工作改变了我们的思维和认知方式。商家在设计程序和应用时,早就把他们的想法埋入了编程和APP中。 卡尔的作品无疑是给我们这个时代灌入了的一剂清醒药。他独特的思考问题角度,犀利甚至略为偏激 的言论再加上丰富的*前沿的科技案例会让人读起来畅快淋漓,且醍醐灌顶,意识到自动化等高科技潜移默......一起来看看 《玻璃笼子》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换