接口测试框架2

现在市面上做接口测试的工具很多,比如Postman,soapUI, JMeter, Python+ unittest等等,各种不同的测试工具拥有不同的特色。但市面上的接口测试工具都存在一个问题就是无法完全吻合的去适用没一个项目,比如数据的处理,加密方式的选择,业务逻辑的处理等等,因为自己编写一个框架能够很好的契合自己的项目。本次选用Python+ unittest方案。这个方案需要测试者具有一定的代码能力,通过利用Python自带的PyUnit也就是我们说的:unittest自动化框架,进行接口自动化测试框架的二次开发。

特点:框架稳定,依托于Python强大的库进行各种形式的接口测试,如基于http协议的接口可以利用urlib,urlib2,requests等库进行设计测试。(现在公司的接口基本都是基于http协议的,因此调用这三个库可以完全的实现接口自动化)同时利用JSON于测试参数进行配置,实现整体测试框架的参数驱动化。

2.框架介绍

整个框架主要分为三层:

  1. 框架层: 核心层+应用层
  2. 核心层:为底层的基础代码
  3. 应用层:为核心层的对外的封装
    框架结构图如下:

整个框架结构如上图,console包为整个框架的入口,通过这里来启动整个框架运作。lib和case为框架的核心层和应用层。

lib里面为测试框架中所有的底层代码

包括:断言方法(resultprocess),权鉴,配置文件,自动生成脚本,测试数据的获取,数据类型的转换,加密的处理,接口测试的初始化,发送邮件,生成测试报告等等。

case 包里包括server和testcase两个包,server包里面为接口业务串联,testcase为单个接口测试。

单个接口测试用例例:

单个server用例示例:

说明:

  1. import unittest   //导入测试框架
  2. 定义一个继承自unittest.TestCase的测试用例类
  3. 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
  4. 定义测试用例,名字以test开头。
  5. 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
  6. 调用unittest.main()启动测试
  7. 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参

data数据包:

log: 主要用于存放脚本运行时生成的log文件

report :用于存放报告文件,为xml文件

case_data :单个接口测试的数据,为json文件

server-data : 接口业务串联的数据,为excel文件

case_data 中json数据格式:

(关于什么是json格式,自己百度)

json数据根据给的上面的这个模板进行配置,注意字段:

test_list :单个接口的多种状态的测试名称,根据该字段列表中的值进行循环生成py的测试脚本

expect    :断言的数据

mode     :用于判断断言采用何种模式(具体情况参看lib库里的resultprocess.py文件)

R : 用于判断是否返回测试数据

reclye: 用于判断是否循环

replace_filed: 标识符,用于判断哪个参数需要被替换,主要用于业务串联测试

server_data 中excel数据格式:

excel里面的数据根据给的上面的这个模板进行配置,注意字段:

测试内容 :写业务流程

测试文件名:表示自动生成的测试脚本的文件名

测试标题:业务串联测试的用例名

调用文件:填写需要串联的接口,以“ ,"隔开

传递字段: 表示下一个接口需要从上一个接口返回的数据中获取的字段内容

测试报告:

3.框架使用说明:

测试人员根据开发提供的接口文档,对于接口的测试点进行完整的分析,编写测试用例,再把测试用例转换成对应的json和excel文档,启动console里面的start_文件,选择对应的测试模式,进行测试

转载于:https://www.cnblogs.com/zhangbao003/p/9547144.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 传不定量参数_Python中的定量金融

python 传不定量参数The first quantitative class for vanilla finance and quantitative finance majors alike has to do with the time value of money. Essentially, it’s a semester-long course driving notions like $100 today is worth more than $100 a year from …

雷军宣布红米 Redmi 品牌独立,这对小米意味着什么?

雷锋网消息,1 月 3 日,小米公司宣布,将在 1 月 10 日召开全新独立品牌红米 Redmi 发布会。从小米公布的海报来看,Redmi 品牌标识出现的倒影中,有 4800 的字样,这很容易让人联想起此前小米总裁林斌所宣布的 …

JAVA的rotate怎么用,java如何利用rotate旋转图片_如何在Java中旋转图形

I have drawn some Graphics in a JPanel, like circles, rectangles, etc.But I want to draw some Graphics rotated a specific degree amount, like a rotated ellipse. What should I do?解决方案If you are using plain Graphics, cast to Graphics2D first:Graphics2D …

贝叶斯 朴素贝叶斯_手动执行贝叶斯分析

贝叶斯 朴素贝叶斯介绍 (Introduction) Bayesian analysis offers the possibility to get more insights from your data compared to the pure frequentist approach. In this post, I will walk you through a real life example of how a Bayesian analysis can be perform…

西工大java实验报告给,西工大数字集成电路实验 实验课6 加法器的设计

西工大数字集成电路实验练习六 加法器的设计一、使用与非门(NAND)、或非门(NOR)、非门(INV)等布尔逻辑器件实现下面的设计。1、仿照下图的全加器,实现一个N位的减法器。要求仿照图1画出N位减法器的结构。ABABABAB0123图1 四位逐位进位加法器的结构2、根据自己构造的…

DS二叉树--二叉树之数组存储

二叉树可以采用数组的方法进行存储,把数组中的数据依次自上而下,自左至右存储到二叉树结点中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点就在数组中用0来表示。,如下图所示 从上图可以看出,右边的是一颗普通的…

VS IIS Express 支持局域网访问

使用Visual Studio开发Web网页的时候有这样的情况:想要在调试模式下让局域网的其他设备进行访问,以便进行测试。虽然可以部署到服务器中,但是却无法进行调试,就算是注入进程进行调试也是无法达到自己的需求;所以只能在…

构建图像金字塔_我们如何通过转移学习构建易于使用的图像分割工具

构建图像金字塔Authors: Jenny Huang, Ian Hunt-Isaak, William Palmer作者: 黄珍妮 , 伊恩亨特伊萨克 , 威廉帕尔默 GitHub RepoGitHub回购 介绍 (Introduction) Training an image segmentation model on new images can be daunting, es…

PHP mongodb运用,MongoDB在PHP下的应用学习笔记

1、连接mongodb默认端口是:27017,因此我们连接mongodb:$mongodb new Mongo(localhost) 或者指定IP与端口 $mongodb new Mongo(192.168.127.1:27017) 端口可改变若mongodb开启认证,即--auth,则连接为: $mongodb new …

SpringBoot项目打war包部署Tomcat教程

一、简介 正常来说SpringBoot项目就直接用jar包来启动&#xff0c;使用它内部的tomcat实现微服务&#xff0c;但有些时候可能有部署到外部tomcat的需求&#xff0c;本教程就讲解一下如何操作 二、修改pom.xml 将要部署的module的pom.xml文件<packaging>节点设置为war <…

关于如何使用xposed来hook微信软件

安卓端 难点有两个 收款码的生成和到帐监听需要源码加 2442982910转载于:https://www.cnblogs.com/ganchuanpu/p/10220705.html

GitHub动作简介

GitHub Actions can be a little confusing if you’re new to DevOps and the CI/CD world, so in this article, we’re going to explore some features and see what we can do using the tool.如果您是DevOps和CI / CD领域的新手&#xff0c;那么GitHub Actions可能会使您…

java returnaddress,JVM之数据类型

《Java虚拟机规范》阅读笔记-数据类型1.概述Java虚拟机的数据类型可分为两大类&#xff1a;原始类型(Primitive Types&#xff0c;也称为基本类型)和引用类型(Reference Types)。Java虚拟机用不同的字节码指令来操作不同的数据类型[1] 。2.原始类型原始类型是最基本的元素&…

C# matlab

编译环境&#xff1a;Microsoft Visual Studio 2008版本 9.0.21022.8 RTMMicrosoft .NET Framework版本 3.5已安装的版本: ProfessionalMicrosoft Visual Basic 2008 91986-031-5000002-60050Microsoft Visual Basic 2008Microsoft Visual C# 2008 91986-031-5000002-60050…

基于容器制作镜像

一。镜像基础 一。基于容器制作镜像 1. 查看并关联运行的容器 [ghlocalhost ~]$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4da438fc9a8e busybox …

认识数据分析_认识您的最佳探索数据分析新朋友

认识数据分析Visualization often plays a minimal role in the data science and model-building process, yet Tukey, the creator of Exploratory Data Analysis, specifically advocated for the heavy use of visualization to address the limitations of numerical indi…

架构探险笔记10-框架优化之文件上传

确定文件上传使用场景 通常情况下&#xff0c;我们可以通过一个form&#xff08;表单&#xff09;来上传文件&#xff0c;就以下面的“创建客户”为例来说明&#xff08;对应的文件名是customer_create.jsp&#xff09;&#xff0c;需要提供一个form&#xff0c;并将其enctype属…

Windows Server 2003 DNS服务安装篇

导读-- DNS(Domain Name System&#xff0c;域名系统)是一种组织成层次结构的分布式数据库&#xff0c;里面包含有从DNS域名到各种数据类型(如IP地址)的映射“贵有恒&#xff0c;何必三更起五更勤;最无益&#xff0c;只怕一日曝十日寒。”前一段时间巴哥因为一些生活琐事而中止…

arima模型怎么拟合_7个统计测试,用于验证和帮助拟合ARIMA模型

arima模型怎么拟合什么是ARIMA&#xff1f; (What is ARIMA?) ARIMA models are one of the most classic and most widely used statistical forecasting techniques when dealing with univariate time series. It basically uses the lag values and lagged forecast error…

[WPF]ListView点击列头排序功能实现

[WPF]ListView点击列头排序功能实现 这是一个非常常见的功能&#xff0c;要求也很简单&#xff0c;在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了。微软的MSDN也已经提供了实现方式。微软的方法中&#xff0c;是通过ColumnHeader Templ…