谢谢@小麦苹果的提醒,才发现我借口测试少写了一个文件,今天给大家补上:

common->service->excel_case_data.py
# coding: utf-8

import json
import sys
import logging
import setting
import requests
from common.module import excel_module
from common.module import requests_module
from common.module import environment_module sys.path.append("..") class ExcelData(): def __init__(self): self.url = ''
self.method = ''
self.data_send = ''
self.expect_res = ''
self.data = ''
self.case_url = ''
self.case_input = ''
self.content_type = '' def get_case_data(self, file_name, sheet_index=0, row_id=0, data=None, **kwargs):
"""
1、获取对应id的行的内容
2、获取url
3、获取请求方式
4、获取请求参数,并进行转码
5、获取预期结果
6、获取string类型的response
:param file_name: xlsx文件名
:param sheet_index: sheet索引
:param row_id: 行索引
:param data: 不用Excel表里的数据,自己传
:param kwargs: 替换excel表里的某个key的value
:return: expect_res, actual_res
"""
# 读取Excel
excel_handle = excel_module.ReadExcel(file_name)
# 获取指定sheet
sheet = excel_handle.get_sheet_by_index(sheet_index)
# 读取指定行
case_data_list = excel_handle.get_row_values(sheet, row_id)
# 获取第row_id行第2列的数据
path = case_data_list[1]
print "path: ", path
self.get_url(path)
print self.get_url(path)
# ID、Path、Request、Input、Expect、content-type、Remark
# 获取发送方式(Request)
self.method = case_data_list[2]
self.data_send = case_data_list[3]
# 字符串转字典
if self.data_send != '':
self.data = json.loads(self.data_send, encoding='utf-8') logging.info(self.data_send)
if kwargs is not None:
for i in kwargs:
for j in self.data:
# 如果传参key和发送内容key相同,则替换Excel表中的对应key的value
if i == j:
self.data[j] = kwargs[i] if data is not None:
self.data = data expect_res = self.get_expect_data()
# 遍历传参,如果有cookie字段则将该cookie赋值给access_token
access_token = ''
for i in kwargs:
if i == 'cookie':
access_token = kwargs[i]
if (access_token.strip() == ''):
actual_res = self.get_actual_data()
else:
actual_res = self.get_actual_data(access_token=access_token) return expect_res, actual_res def get_case_input(self, file_name, sheet_index=0, row_id=0):
"""
获取输入数据
:param file_name: 文件路径
:param sheet_index: sheet索引
:param row_id: 行索引
:return: Excel表中的传入数据
"""
excel_handle = excel_module.ReadExcel(file_name)
sheet = excel_handle.get_sheet_by_index(sheet_index)
case_data = excel_handle.get_row_values(sheet, row_id)
self.data = case_data[3]
return self.data def get_url(self, path):
pathStr = str(path)
self.url = environment_module.Environment_module().get_env_url('login') + path def get_expect_data(self):
logging.debug("=============Expect============" + self.expect_res)
return self.expect_res.encode('utf-8') def get_actual_data(self, **kwargs):
# headers = setting.REQUEST_HEADER
# headers['Content-Type'] = self.content_type['Content-Type']
# for i in kwargs:
# if i == "access_token":
# headers['Cookies'] = kwargs[i]
actual_res_handle = requests_module.GetResponse(self.url, method=self.method)
actual_url = actual_res_handle.get_response(data=self.data)
res_analysis = requests_module.AnalysisResponse(actual_url)
actual_res = res_analysis.Str_Content
cookies = requests.utils.dict_from_cookiejar(res_analysis.Cookies)
# logging.debug(u"===============data==============") + json.dumps(self.data)
logging.debug((u"===========实际返回的数据为:%s============") % actual_res)
return actual_res, cookies

读取excel文件的方法。

微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

接口测试框架——第六篇-读Excel封装方法的更多相关文章

  1. 接口测试框架——第四篇-url、excel内容等

    到现在为止,发送邮件(email_module).读excel(excel_module).发送requests(requests_module).常量(setting)我们都已经完成了,看看第一篇中 ...

  2. Auty自动化测试框架第六篇——垃圾代码回收、添加suite支持

    [本文出自天外归云的博客园] 垃圾代码回收 添加脚本恢复机制,因为框架会自动生成一些代码,如果代码生成后出现问题导致代码没有正常删除掉,则会造成代码垃圾,在auty目录添加recovery.py文件: ...

  3. Spring框架第六篇之Spring与DAO

    一.Spring与JDBC模板 1.搭建环境 首先导入需要的jar包: 以上jar中多导入了DBCP和C3P0的jar包,因为这里需要演示怎么配置多种数据源,所以导入了这两个包,在实际开发中无需导入这 ...

  4. 接口测试框架——第三篇:发送(requests)

    把下面的代码放在requests_module.py文件中 # coding: utf-8 import requests import logging from requests.exception ...

  5. NFine框架JqGrid导出选中行为Excel实现方法

    客户端 function PostAndGetFileByUrl(url,type,postdata) { var temp; $.ajax({ url: url, type: type, data: ...

  6. 接口测试框架——第二篇-python读取excel文件内容

    今天完善excel_module.py文件,上代码: # coding: utf-8 import xlrd class ReadExcel(): def __init__(self, file_na ...

  7. python_reques接口测试框架,Excel作为案例数据源

    一.框架菜单 1.1 common模块  1.2 其他 二.Excel接口测试案例编写 三.读取Excel测试封装(核心封装) excel_utils.py  读取Excel中的数据 import o ...

  8. python接口测试框架遇到的坑(一)excel数字转文本

    一.遇到的问题 python编写接口测试框架中,接口用例使用excel维护,其中预期值(code码的值)20000和实际值总是不一致,后来通过打印type发现一个是unicode,一个是float. ...

  9. 《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)

    1.简介 从这一篇开始介绍和分享Java+Selenium+POM的简单自动化测试框架设计.第一个设计点,就是支持跨浏览器测试. 宏哥自己认为的支持跨浏览器测试就是:同一个测试用例,支持用不同浏览器去 ...

随机推荐

  1. Memcached stats sizes 命令

    Memcached stats sizes 命令用于显示所有item的大小和个数. 该信息返回两列,第一列是 item 的大小,第二列是 item 的个数. 语法: stats sizes 命令的基本 ...

  2. CSP(Content Security Policy) 入门教程

    参考: http://www.ruanyifeng.com/blog/2016/09/csp.html https://developer.mozilla.org/en-US/docs/Web/HTT ...

  3. 什么是JSON?

    JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符号标注. {} 双 ...

  4. git代码版本回退

    git log 用于查看我们修改提交的快照记录(commit记录),然后会有个commit修改记录的id编号,该命令显示从最近到最远的提交日志,我们可以看到3次提交记录,如下: git checkou ...

  5. 16.并发容器之CopyOnWriteArrayList

    1. CopyOnWriteArrayList的简介 java学习者都清楚ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机 ...

  6. uva 12086 线段树or树状数组练习

    题目链接   https://vjudge.net/problem/34215/origin 这个题就是线段树裸题,有两种操作,实现单点更新和区间和的查找即可,这里第一次学习使用树状数组完成. 二者相 ...

  7. UVA-10917 Walk Through the Forest (dijkstra+DP)

    题目大意:n个点,m条边的无向图.一个人从起点到终点按照下面的走法:从A走向B当A到终点的最小距离比B到终点的最小距离大时.问从起点到终点有多少路径方案. 题目分析:先用dijkstra预处理出终点到 ...

  8. Python抓取糗事百科成人版图片

    最近开始学习爬虫,一开始看的是静觅的爬虫系列文章,今天看到糗事百科成人版,心里就邪恶了一下,把图片都爬下来吧,哈哈~ 虽然后来实现了,但还是存在一些问题,暂且不提,先切入正题吧,没什么好说的,直接上代 ...

  9. 尝试优化骨骼动画计算的意外收获——使用嵌入式汇编对float转int进行优化

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4984530.html 公司引擎目前是使用CPU计算骨骼动画(采用了D3DX提供的函数 ...

  10. 010——数组(十)compact extract in_array

    <?php /** 10 数组 compact extract in_array */ //compact() (紧凑的,简洁的) 将变量转换为数组,变量名为数组键名,变量值为数组的键值. /* ...