接口自动化测试复习巩固第二天,管理员后端验证和接口抓包+requests实现
接口自动化测试第二天,需要用到的第三方库有os,openpyxl,json,pytest,requests
首选我们今天的目标是写出一个测试登录用例的脚本,这里我用的是分层设计,整个框架暂时被分为工具层,测试数据层,用例层。
工具层:这里我会先放目前需要用到的脚本
测试数据层:用例执行时需要的测试数据,我会以excel格式存放在这里
用例层:这里放的是自己编写的自动化测试脚本
首先先确定自己需要的工具,目前为止,我需要的工具有2个,一个是读取excel测试数据的工具,一个是识别整个框架的文件位置工具。这里开始写
1.读取excel数据的工具
from openpyxl import load_workbook
class MyExcel:
def __init__(self,excelpath,sheet_name):
#打开本地文件
self.wb = load_workbook(excelpath)
self.sh = self.wb[sheet_name]
def select_sheet(self,sheet_name):
self.sh = self.wb[sheet_name]
def read_all_data(self):
all_datas = list(self.sh.values)
titles = all_datas[0]
case_list = []
for row_data in all_datas[1:]:
new_dict = dict(zip(titles,row_data))
print(new_dict)
case_list.append(new_dict)
return case_list
2.识别文件位置的工具
import os
#项目路径
basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#测试数据excel目录
testdata_dir = os.path.join(basedir,"testdata")
两个工具已经写好了,接下来是准备测试数据
3.测试数据的准备

#注意,这里的req_data数据用json格式来写
4.自动化测试脚本
import os
import json
import pytest
import requests
from tools.handle_path import testdata_dir
from tools.handle_excel import MyExcel
#读取测试数据 - excel中一行一个用例数据
me = MyExcel(os.path.join(testdata_dir,"cases.xlsx"),sheet_name="登录")
all_datas = me.read_all_data()
class TestAdminLogin:
@pytest.mark.parametrize("case",all_datas)
def test_login(self,case):
resp = requests.request(case.get("method"),case.get("url"),
json=json.loads(case.get("req_data")))
print(resp.status_code)
print(resp.text)
#断言
assert case.get("expected") in resp.text
注意:因为在excel中的req_data是用json格式写的,所以在python中要将它转换为字典格式,需要导入一个第三方库json来进行转换
json.loads()
接口自动化测试复习巩固第二天,管理员后端验证和接口抓包+requests实现的更多相关文章
- 第二章、http协议及嗅探抓包--http协议详解
初识http协议 hypertext trandfer protocol 超文本传输协议,是一种分布式,合作式,多媒体信息系统服务,面向应用层的协议.使用最广泛的应用层协议,基于传输层的TCP协 ...
- Lego-美团点评接口自动化测试实践
Lego-美团点评接口自动化测试实践 2018-02-07 转自:Lego-美团点评接口自动化测试实践 目录 一.概述 1.1 接口自动化概述 1.2 提高ROI 针对“减少投入成本” ...
- Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...
- (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service
本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...
- 零成本实现接口自动化测试 – Java+TestNG 测试Restful service
接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...
- 基于Jmeter的接口自动化测试实践
在去年实施了一年的三端(PC.无线M站.无线APP[Android.IOS])后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成.今天做个简单的分享. ...
- 接口自动化测试框架搭建 – Java+TestNG 测试Restful service
接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...
- Django 接口自动化测试平台
本项目工程 github 地址:https://github.com/juno3550/InterfaceAutoTestPlatform 0. 引言 1. 登录功能 2. 项目 3. 模块 4. 测 ...
- 前端接口自动化测试工具-DOClever使用介绍(转载)
DOClever 不仅集成了文档编写,团队协作,接口运行,mock 数据等功能,还有两个功能是让我们团队大大的提高工作效率的.一个是接口的自动化生成,可以根据接口数据自动生成文档信息,还有一个便是本文 ...
- Java接口自动化测试实战笔记
综述 代码管理工具Git 测试框架 TestNG 测试报告 Mock 接口框架 HTTP 协议接口 测试框架 HttpClient SprintBoot 自动化测试开发 数据持久层框架 MyBatis ...
随机推荐
- [c/c++][考研复习笔记]内部排序篇学习笔记
考研排序复习笔记 插入排序 #include<stdio.h> #include<stdlib.h> #define MaxSize 9 //折半插入排序 void ZBIns ...
- 使用C++和QT实现Log自定义日志系统
MyLog 说明 使用QT的qInstallMessageHandler函数结合qDebug,qInfo实现自定义的日志系统 输出日志到文件和控制台 自动检测日志文件大小 自动更新日志文件修改日期 自 ...
- 自上而下的LL(1)语法分析法
LL(1)文法:从文法的开始符,向下推导,推出句子. 对文法G的句子进行确定的自顶向下语法分析的充分必要条件是,G的任意两个具有相同左部的 产生式A->α|β 满足下列条件: (1)如果α.β均 ...
- 华企盾DSC控制台升级提示不能连接服务器
由于服务器Apache没有启动导致无法升级,查看版本说明看看是否是版本问题,尝试手动启动Apache服务
- 聊聊流式数据湖Paimon(二)
当前的问题 Apache Paimon 最典型的场景是解决了 CDC (Change Data Capture) 数据的入湖:CDC 数据来自数据库.一般来说,分析需求是不会直接查询数据库的. 容易对 ...
- selenium之三种等待,强制等待、隐式等待和显式等待
显式等待 presence_of_element_locatedpresence_of_all_elements_locatedvisibility_of_any_elements_located ...
- JavaFx之TableView表格添加按钮删除行(二十二)
JavaFx之TableView表格添加按钮删除行(二十二) JavaFx之TableView添加按钮 JavaFx之TableView删除行 编写一个xml <?xml version=&qu ...
- P4928 [MtOI2018]衣服?身外之物! 题解
题意 gcd 共有 \(n\) 件衣服,编号为 \(A_1,A_2,\cdots A_n\). 每一件衣服分别拥有颜色值和清洗时间,他在每一件衣服穿完以后都会将其送去清洗,而这件衣服当天所拥有的舒适感 ...
- pyecharts 保存图表至本地
pip install snapshot-selenium from pyecharts.render import make_snapshot from snapshot_selenium impo ...
- 使用Java 17中的record替代Lombok的部分功能
在DD长期更新的Java新特性专栏中,已经介绍过Java 16中开始支持的新特性:record的使用. 之前只是做了介绍,但没有结合之前的编码习惯或规范来聊聊未来的应用变化.最近正好因为互相revie ...