接口自动化测试第二天,需要用到的第三方库有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实现的更多相关文章

  1. 第二章、http协议及嗅探抓包--http协议详解

    初识http协议    hypertext trandfer protocol 超文本传输协议,是一种分布式,合作式,多媒体信息系统服务,面向应用层的协议.使用最广泛的应用层协议,基于传输层的TCP协 ...

  2. Lego-美团点评接口自动化测试实践

    Lego-美团点评接口自动化测试实践 2018-02-07 转自:Lego-美团点评接口自动化测试实践 目录 一.概述  1.1 接口自动化概述  1.2 提高ROI    针对“减少投入成本”    ...

  3. Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通

    Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...

  4. (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service

    本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...

  5. 零成本实现接口自动化测试 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  6. 基于Jmeter的接口自动化测试实践

    在去年实施了一年的三端(PC.无线M站.无线APP[Android.IOS])后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成.今天做个简单的分享. ...

  7. 接口自动化测试框架搭建 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  8. Django 接口自动化测试平台

    本项目工程 github 地址:https://github.com/juno3550/InterfaceAutoTestPlatform 0. 引言 1. 登录功能 2. 项目 3. 模块 4. 测 ...

  9. 前端接口自动化测试工具-DOClever使用介绍(转载)

    DOClever 不仅集成了文档编写,团队协作,接口运行,mock 数据等功能,还有两个功能是让我们团队大大的提高工作效率的.一个是接口的自动化生成,可以根据接口数据自动生成文档信息,还有一个便是本文 ...

  10. Java接口自动化测试实战笔记

    综述 代码管理工具Git 测试框架 TestNG 测试报告 Mock 接口框架 HTTP 协议接口 测试框架 HttpClient SprintBoot 自动化测试开发 数据持久层框架 MyBatis ...

随机推荐

  1. springMvc报错

    这个报错困扰了我大概一天,主要是刚开始没抓到主要原因,是因为自己的项目结构出现了问题, 导致找不到应有的东西,另一方面就是maven的问题,将maven解决后这个就能用了. 具体解决在https:// ...

  2. 手把手教你用python做一个年会抽奖系统

    引言 马上就要举行年会抽奖了,我们都不知道是否有人能够中奖.我觉得无聊的时候可以尝试自己写一个抽奖系统,主要是为了娱乐.现在人工智能这么方便,写一个简单的代码不是一件困难的事情.今天我想和大家一起构建 ...

  3. 华企盾DSC客户端右键菜单不显示常见处理方法

    1.检查控制台"客户端不显示右键菜单项" 2.未分发模块权限,若以分配可尝试去掉重新分配模块 3.检查杀毒软件是否杀掉了5097目录的文件(覆盖安装,以上两条没问题,这条比较常见) ...

  4. java,ArrayList类

    ArrayList 是一个数组列表,可以将多个对象放入数组中,是一个长度可变的集合,提供了增删改查的功能. public class Test2 { public static void main(S ...

  5. MyBatis高频面试题

    1.MyBatis中使用#和$书写占位符有什么区别? 2.Hibernate 与 Mybatis区别(MyBatis与Hibernate有什么不同). 3.持久层设计要考虑的问题有哪些? 4.你用过的 ...

  6. 从零玩转EasyPoi-cong-ling-wan-zhuan-easypoi

    title: 从零玩转EasyPoi date: 2023-01-11 13:49:25.908 updated: 2023-03-30 13:23:20.817 url: https://www.y ...

  7. grafana添加组件

    ###安装grafana插件需联网安装[root@zabbix grafana]# grafana-cli plugins list-remote #查询可用的插件id: abhisant-druid ...

  8. 数仓调优实践丨SQL改写消除相关子查询

    本文分享自华为云社区<[调优实践]SQL改写消除相关子查询>,作者: 门前一棵葡萄树 . 一.子查询 GaussDB(DWS)根据子查询在SQL语句中的位置把子查询分成了子查询.子链接两种 ...

  9. 探究Python源码,终于弄懂了字符串驻留技术

    摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能. 每种编程语言为了表现出色,并 ...

  10. 一文总结GaussDB通信原理知识

    摘要:从发展历程到通信模型设计,到你了解一下GaussDB通信原理知识. MPPDB通信库发展历程 Postgres-XC 方法:采用libpq通信库实现CN和DN之间的连接,CN负责计算,DN仅进行 ...