前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >API自动化测试笔记(二):测试数据

API自动化测试笔记(二):测试数据

作者头像
free赖权华
发布于 2020-05-04 07:01:04
发布于 2020-05-04 07:01:04
38700
代码可运行
举报
文章被收录于专栏:赖权华的笔记赖权华的笔记
运行总次数:0
代码可运行

(一)说明

    相信不管是GUI自动化测试,亦或者是API自动化测试,都离不开测试数据。

     这里说的测试数据我理解分为2部分:

        1、用例执行前需要的前置条件,例如我验证正确账户、密码能否成功登录,首先就需要一个已经注册的用户。

        2、测试用例本身需要的输入及预期结果。例如:调用一个API,我需要设置不同的请求参数,验证不同请求参数下的响应是否符合预期。这里的请求参数和预期结果也是我们的测试数据。

    这里主要提供个思路,在API自动化,亦或者GUI自动化中,该怎么管理我们的测试数据(这里针对的是第二种测试数据)。思路大概是:应用工厂设计模式

       1、工厂类:接受不同格式的数据,解析并处理为DataFrame格式数据

       2、将DataFrame格式的数据处理成字典或列表。

    使用工厂模式有个优点是,方便以后的扩展,例如如果有新增的文件格式,只要在工厂类中新增该文件格式的实现即可。

(二)简单实现代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 import os
 2 import pandas as pd
 3 
 4 
 5 class ParamConfigSourceFactory():
 6 
 7     def __init__(self,filename,sheet_name=None):
 8         """
 9         工厂设计模式:接受不同格式数据,解析并转换为DataFrame格式数据
10         :param filename:
11         :param sheet_name:
12         """
13         self.filename = filename
14         self.sheet_name = sheet_name
15         self.df = self.get_file_data()
16 
17     def get_file_data(self):
18         file_type = os.path.splitext(self.filename)[1]
19         if file_type == '.xlsx':
20             df = pd.read_excel(io=self.filename,
21                                sheet_name=self.sheet_name)
22         else:
23             raise ValueError("不支持的文件格式{},仅支持xlsx格式".format(file_type))
24         return df
25 
26 
27 class ParamConfigSource():
28 
29     def __init__(self,filename,sheet_name=None):
30         self.filename = filename
31         self.sheet_name = sheet_name
32         self.df = ParamConfigSourceFactory(filename=self.filename,sheet_name=self.sheet_name).df
33 
34     def get_all_test_data_format_dict(self,flag=0):
35         """
36         :param flag
37             flag=0 返回 {0{key1:value1,key2:value2..},1:{...}}格式数据
38             flag=1 返回 {0:[value1,value2...],1:[...]}格式数据
39         :return:
40         """
41         col_name = [col for col in self.df]
42         data = {}
43         num = 0
44         for indexs in self.df.index:
45             if flag == 0:
46                 row_data = {}
47                 for i in range(len(self.df.loc[indexs].values)):
48                     row_data[col_name[i]] = self.df.loc[indexs].values[i]
49             elif flag == 1:
50                 row_data = []
51                 for i in range(len(self.df.loc[indexs].values)):
52                     row_data.append(self.df.loc[indexs].values[i])
53             else:
54                 raise  ValueError("不支持的参数:{}".format(flag))
55             data[num] = row_data
56             num += 1
57         return data
58 
59     def get_all_test_data_format_list(self):
60         """
61         返回[(value1,value2...),(...)]格式数据
62         :return:
63         """
64         data = []
65         for indexs in self.df.index:
66             row_data = []
67             for i in range(len(self.df.loc[indexs].values)):
68                 row_data.append(self.df.loc[indexs].values[i])
69             data.append(tuple(row_data))
70         return data
71     
72 # 执行下看下结果
73 pcs = ParamConfigSource(filename="./测试1.xlsx",sheet_name="Sheet1")
74 print(pcs.get_all_test_data_format_dict())
75 print(pcs.get_all_test_data_format_dict(flag=1))
76 print(pcs.get_all_test_data_format_list())
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
自动化测试如何解析excel文件?
自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。那么今天我们就把不同模块处理excel文件的方法做个总结,直接做封装,方便我们以后直接使用,增加工作效率。
顾翔
2019/12/12
8680
自动化测试如何解析excel文件?
  自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。那么今天我们就把不同模块处理excel文件的方法做个总结,直接做封装,方便我们以后直接使用,增加工作效率。
py3study
2020/01/16
7530
超超长篇 - 手把手带你用python玩转Excel
gitee:https://gitee.com/xiaozai-van-liu/mwj_utils
梦无矶小仔
2024/06/18
1.1K0
超超长篇 - 手把手带你用python玩转Excel
Python搭建接口测试自动化框架(二)
很早之前,我就准备做一个基于 Python 的自动化测试框架,当时仅仅写了第一篇,后面因为种种原因,就没有再写了,从今天开始,继续这个系列,一步一步的,搭建一个自己理想的自动化测试框架。 关于第一部分,可以戳这里(链接)
周萝卜
2019/07/17
1.8K2
Python搭建接口测试自动化框架(二)
Python接口自动化之数据驱动
在上一篇Python接口自动化测试系列文章:Python接口自动化之登录接口测试,主要介绍接口概念、接口用例设计及登录接口测试实战。以下主要介绍使用openpyxl模块操作excel及结合ddt实现数据驱动。
可可的测试小栈
2020/05/07
1.3K0
Python自动化:Python操作Excel的多种方式Pandas+openpyxl+xlrd
使用pandas操作Excel文件主要涉及读取(read_excel)和写入(to_excel)两个主要操作。
小白的大数据之旅
2024/11/20
1K0
用python批量处理Excel表格,处理结果又快又好,做办公室最靓的那个仔
类似这样的格式化的重复操作,你还在每次都使用的人工去逐条查询处理么?下次再遇到这种情况,请一定不要再傻傻地每次都手动查询处理。可以快速整理出一个python脚本来批量处理Excel数据,周期性处理的数据更是一了百了哦。
菜鸟小白的学习分享
2020/07/14
4.4K0
python+requests+excel接口自动化数据驱动
一、前言 1.环境准备: - python3.6 - requests - xlrd - openpyxl - HTMLTestRunner_api 2.目前实现的功能: - 封装requests请求方法 - 在excel填写接口请求参数 - 运行完后,重新生成一个excel报告,结果写入excel - 用unittest+ddt数据驱动模式执行 - HTMLTestRunner生成可视化的html报告 - 对于没有关联的单个接口请求是可以批量执行的,需要登录的话写到setUpclass里的session里
上海-悠悠
2018/04/08
6.8K0
python+requests+excel接口自动化数据驱动
python 数据库处理
# -*- coding:utf-8 -*- #!/bin/env python ''' #Auth:karl #Function: released version #Date:2017/6/27 #Version:V1.0 ''' import  sys,re,time,datetime import  paramiko import logging import ConfigParser import traceback import MySQLdb import platform import xl
py3study
2020/01/09
4870
Python操作Excel
常用的方式 常用的读写Excel的库: pandas openpyxl xlrd/xlwt/xlutils 使用它们都能够达到读写Excel的目的,但它们的侧重点又略有不同。 具体如下: pandas:数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式,功能强大 openpyxl:主要针对xlsx格式的excel进行读取和编辑 xlrd库:从excel中读取数据,支持xls、xlsx xlwt库:对excel进行修改操作,不支持对xlsx格式的修改 xlutils库:
码客说
2022/01/17
1.5K0
教你搭建微信公众号自动答复机器人
昨天我们的文章中说到:使用图灵机器人作为应答机器人可以满足要求,但是每天的回复条数在不花钱的情况下只能有100条。对于我这样贫困线人口怎么可能每个月花费99元就为了自动回复呢。于是我就在想还有没有其它的方式能够快速做一个请求和应答表呢?
菜鸟小白的学习分享
2020/07/14
2.1K0
教你搭建微信公众号自动答复机器人
Excel进行加1操作,更新手机号进行注册
1.代替print,可以把大部分你想要进行调式的信息打印出来或者是输出到指定文件。
清菡
2020/12/02
8790
Excel进行加1操作,更新手机号进行注册
Python读取结果写入Excel中
列表嵌套字典。Excel中的url,test_method,data,title等都是一个键,url,test_method,data,title下面的数据就是要取的值,也就是Key和value的形式。
清菡
2020/12/02
2.4K0
Python读取结果写入Excel中
快速打造属于你的接口自动化测试框架
接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。 接口自动化相对于UI自动化来说,属于更底层的测试,这样带来的好处就是测试收益更大,且维护成本相对来说较低,是我们进行自动化测试的首选
测试开发社区
2020/09/27
7130
快速打造属于你的接口自动化测试框架
Python处理Excel数据的方法[通俗易懂]
当Excel中有大量需要进行处理的数据时,使用Python不失为一种便捷易学的方法。接下来,本文将详细介绍多种Python方法来处理Excel数据。
全栈程序员站长
2022/11/18
6K0
Python自动化办公--Pandas玩转Excel数据分析【三】
 预测的话就直接输入x代入方程,这是deme仅供参考,更多的可以采用机器学习的一些算法进行求解。
汀丶人工智能
2022/12/21
7260
Python自动化办公--Pandas玩转Excel数据分析【三】
数据库里查询到最大的手机号,在这个基础上加1进行登录
formatter=logging.Formatter('%(asctime)s-%(levelname)s-%(filename)s-%(name)s-日志信息:%(message)s')
清菡
2020/12/02
7550
数据库里查询到最大的手机号,在这个基础上加1进行登录
Python-接口自动化(九)
上面的这两个东东就叫做夹心饼干,在必要的时候写, 比如说在执行测试用例之前你有数据需要提前准备好,在测试用例执行结束之后有东西需要清除掉,就可以用夹心饼干。在之后的代码中可以看到这个夹心饼干的作用和用法。
py3study
2020/01/16
4500
python读取xlsx文件
我是在win7下读取的。 python版本是:3.5 import xlrd import re import sqlite3 def read_xlsx(): workbook = xlrd.open_workbook('E:\20160322.xlsx') booksheet = workbook.sheet_by_name('Sheet1') p = list() for row in range(booksheet.nrows): row_d
py3study
2020/01/09
1.2K0
自动化测试 数据驱动(自动化测试解决数据错误)
在unittest中结合ddt实现数据驱动,首先是在头部导入ddt模块,其次在测试类前声明使用ddt,然后在测试方法前使用@ddt.data()添加该测试方法需要的测试数据,该函数接收一个可迭代的类型,以此来判断需要执行的次数,多组测试数据间以逗号隔开,如果每组数据存在多个,需要将每组数据存于列表中;最后使用@unpack 进行修饰,对测试数据解包,传参;
全栈程序员站长
2022/08/02
7150
相关推荐
自动化测试如何解析excel文件?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档