设定项目文件大致结构

  1. atp/: 项目名

  2. conf/:存放配置文件

  3. data/:存放sql文件

  4. lib/: 存放项目的所有源代码。

  5. logs/:存放日志文件

  6. uploads/:存放下载的文件

  7. start.py: 程序启动脚本

  8. readme.txt: 项目说明文件。

  9. case/:存放用例表

理清思路

基本思想与原则A:
数据很多,就放到一个列表或字典里;
用for语句,处理一条数据即可。

基本思想与原则B:
考虑是否传参,如何传参。
一般把要处理的对象作为参数传入。

1.有多个用例表,取所有的表到一个大列表d_all_excel中。for循环,处理一个表abs_excel先。
d_all_excel = glob.glob(os.path.join(case_path,'*.xls'))

2..一个表中有多条用例,取表中的用例到一个大列表中all_cases中.
(表的读写)
# all_cases = [[url,method,data:dict,check],[url,method,data:dict,check],...] ;
book = xlrd.open_workbook(abs_excel)
sheet = book.sheet_by_index(0)
for case in range(1,nrows):all_cases.append(sheet.row_values(i)[4:8])

3.用例数据处理:for循环,处理一条用例case先。
case作为参数入参。case = [url,method,data:dict,check]
序列解包;
url需要拼接为完整的接口地址: url = urljoin(server_url,url)
难点:data不仅要参数化: for p,func in func_map.items(): if p in data: data.replace(p,func())
func_map = {
'<phone>': f.phone_number, #生成电话的
'<ssn>': f.ssn,
'<email>': f.email,
'<name>': f.name,
'<username>': f.user_name,
'<bank_no>': f.credit_card_number,
'<password>': f.password,
'<addr>': f.address
} #这儿的f是faker.Faker()
data还要取成字典:

4.访问接口,拿到返回数据response和res_reason, satate('成功,失败')。
分get和post,需要传参url,data,header. 后俩个不是必传参数,可以默认为None;
没返回数据时,拿不到json, 处理下异常;

5.难点:校验返回的数据和预期结果。 检查点 如 erron = 2001
根据预测数据检查点的key,来获取实际返回数据的rea_value;
(jsonpath模糊匹配)
[key,seq,value]
code = '%s %s %s'%(self.convert_type(real_value),seq,self.convert_type(value)) #生成比较实际结果和语气结果的代码
status = eval(code) #用eval来执行生成代码,获取到执行的结果
将预测数据检查点的value,用其运算符,与rea_value比较。所有检查点都True即成功。
注意:nt和float不能比较。字符不加引号,就是变量,变量不能比较。try except

6.将校验结果写入表中。
列表数据写入表格;
表格存放到data里,避免与case混一起。

7.将表通过邮件发送。
处理下异常,网不好等很容易失败

8.串通好流程。

9.提高效率,单线程和多线程

基于excel的自动化框架的更多相关文章

  1. 3分钟手把手带你搭建基于selenium的自动化框架

    1 .什么是seleniumSelenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...

  2. python+requests+excel 接口自动化框架

    一.项目框架如图: 1.common :这个包都是一些公共的方法,如:手机号加解密,get/post接口请求的方法封装,接口鉴权,发邮件,读写excel文件方法等等 2.result:存放每次运行的l ...

  3. 【基于Puppeteer前端自动化框架】【二】PO模式,断言(如何更简便逻辑的写测试代码)

    一.概要 前面介绍了Puppeteer+jest+TypeScript做UI自动化,但是这知识基础的,我们实现自动化要考虑的很多,比如PO模式,比如配置文件,比如断言等等.下面就来一一实现我是怎么用p ...

  4. 【基于PUPPETEER前端自动化框架】【一】TypeScript+Puppeteer+Jest 整合

    前提:掌握Jest + Puppeteer 1.Jest环境配置 2.Jest-MATCHERS匹配器 3.Jest-全局变量设置 4.Puppeteer安装 5.Puppeteer元素获取 6.Pu ...

  5. ShutIt:一个基于 Python 的 shell 自动化框架

    ShutIt是一个易于使用的基于shell的自动化框架.它对基于python的expect库(pexpect)进行了包装.你可以把它看作是“没有痛点的expect”.它可以通过pip进行安装. Hel ...

  6. 自动化框架Quantum Automation Framework+cucumber+perfecto

    名词解释 Quantum: 一款基于JAVA的自动化框架,支持手机和桌面WEB的自动化测试.与cucumber和perfecto实现了整合,用于BDD自动化. Refer: http://projec ...

  7. 接口自动化---简单的数据驱动框架ATP(基于excel)

    数据驱动测试:根据数据进行测试.将用例写入excel文件,用代码读取文件中的数据,从而实现自动化测试. 自动化框架实现步骤: 1.获取用例 2.调用接口 3.校验结果 4.发送测试报告 5.异常处理 ...

  8. 基于excel的接口自动化测试框架:支持参数化、关联等

    1. 框架结构说明 2. 框架代码实现 action 包  case_action.py business_process 包 main_process.py util 包 global_var.py ...

  9. 基于Selenium的web自动化框架

    转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...

  10. 基于Selenium的Web自动化框架增强篇

    在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...

随机推荐

  1. LeetCode_387. 字符串中的第一个唯一字符

    写在前面 原文地址:https://leetcode.cn/problems/first-unique-character-in-a-string/ 难度:简单 题目 给定一个字符串 s ,找到 它的 ...

  2. Spring Boot启动时执行初始化操作三种方法分享

    @PostConstruct对于注入到Spring容器中的类,在其成员函数前添加@PostConstruct注解,则在执行Spring beans初始化时,就会执行该函数.但由于该函数执行时,其他Sp ...

  3. E - 树状数组 1【GDUT_22级寒假训练专题五】

    E - 树状数组 1 原题链接 题意 已知一个数列,你需要进行下面两种操作: 将某一个数加上 \(x\) 求出某区间每一个数的和 lowbit函数 定义一个函数\(f=lowbit(x)\),这个函数 ...

  4. pdf转MD、HTML、word网址收集

    PDF 转 Word,Excel,PPT,JPG 的网址:https://smallpdf.com/cn/pdf-to-word PDF 转 Markdown 的网址:https://pdf2md.m ...

  5. vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等...

    vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等... 最近项目中有个需求,datePicker选项,需要实现增加一个 ...

  6. odoo 给列表视图添加按钮实现数据文件导入

    实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好的表达本文主题,一些和主题无关的文件.代码已略去 odoo14\cus ...

  7. 触觉仿真系统:Force Dimension+CHAI 3D

    推荐:将 NSDT场景编辑器 加入你的3D开发工具链 Force Dimension 成立于2001年,总部在瑞士,比sensable 晚了8年,开发的理念也不一样,他们开发是连杆式力反馈触觉系统,仿 ...

  8. Nacos集群搭建(三个节点)

    Nacos集群安装 一,在每台服务器上安装nacos 1,准备安装包 ​ github下载点 2,在/usr/local/目录下创建一个文件夹用于上传和解压Nacos cd /usr/local/ # ...

  9. 从Linux Bridge引发的网桥、交换机与路由器区别探究

    背景 最近接触docker的网络配置方式,发现其默认会创建一个docker0的Linux Bridge,宿主机上运行的容器可以通过连接该birdge实现与外网的通信,根据bridge这个命名很自然的认 ...

  10. CSS 数学函数与容器查询实现不定宽文本溢出跑马灯效果

    在许久之前,曾经写过这样一篇文章 -- 不定宽溢出文本适配滚动.我们实现了这样一种效果: 文本内容不超过容器宽度,正常展示 文本内容超过容器的情况,内容可以进行跑马灯来回滚动展示 像是这样: 但是,之 ...