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

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

内容简介: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指定单元格数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Measure What Matters

Measure What Matters

John Doerr / Portfolio / 2018-4-24 / GBP 19.67

In the fall of 1999, John Doerr met with the founders of a start-up he’d just given $11.8 million, the biggest investment of his career. Larry Page and Sergey Brin had amazing technology, entrepreneur......一起来看看 《Measure What Matters》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具