接口测试工具开发文档

1 开发规划

1.1 开发人员

角 色

主要职责

负责模块

人员

备注

n xxx模块

xxx

1.2 开发计划

<附开发计划表>

1.3 开发环境和工具

开发工具

工具

作用

Notepad++

编辑器

Perl

解释器

2 总体设计

设计思路:因为测试app和server。首先必须将app和server的通信断开,构造一个连接层,然后再根据这个连接层进行case设计,以及设计case对app的回馈。

2.1 概念术语描述

2.1.1 术语1

<术语1的描述>

2.1.2 术语2

<术语2的描述>

2.1.3 采用算法说明

2.1.4 模块依赖:

⒈ JSON,提供json解析功能

⒉ Parallel::ForkManager,提供多进程的fork等功能。

⒊ HTTP::Proxy,提供代理功能。

⒋ Log::Fast,提供日志功能

2.2 基本设计描述

采用多进程的CS模型。大概模块以及功能分为4个:

⑴ 、数据同步模块,主要同步线上下线的数据。线上模块对于该模块的数据是只读的。

⑵ 、配置解析模块。主要是JSON解析,将整体Case的配置文件解析生成所有case列表。

⑶ 、HttpProxy代理模块,主要功能是代理http请求,并记录下http请求的内容。为以后做Http请求分析对比做的一个东西。

a) 、在CaseManager启动的时候启动Proxy。

b) 、其他功能待定/****/

⑷ 、Executor模块。主要功能连接Manager并且执行Manager分配给它的内容。并且将执行结果发送给Manager。

a) 、启动后连接server固定的端口,连接陈功之后等待server下发任务。

b) 、解析server下发的任务命令,JSON的形式,并按照命令的内容执行。

⑸ 、CaseManager模块,主要功能管理case、分配任务给Executor。接收Executor发回的执行结果。

a) 、启动的时候加载解析配置,失败退出。

b) 、启动SOCKETserver并且初始化绑定端口。必须支持stub,以及mesgtype,以便后续进行扩展

c) 、fork出一些进程,然后进行任务分派。

d) 、接收Executor发回的一些信息做一下处理/**需要商议**/

e) 、等待case下发完成并且有Executor执行完成之后进行清理动作

⑹ 、生成最终的报告。(可以选择的模块)

⑺ 、其他必须的组件。

2.2.1 系统总体逻辑结构/流程图(图1)

2.2.2 配置文件引导/说明

{"Proxy": {这里是代理相关的配置},"Global": {"LocaleType": "utf8",#本地语言,可以为空,默认ascii"Protocal": "HTTP",#协议的类型,http或者https目前只支持Http"IsRsyncData": 0,#是否需要从线上同步数据"DataServerIp": "127.0.0.1",#从线上同步数据的IP"DataServerPort" : "127.0.0.1",#从线上同步数据的Port"RequestType":[ "POST", "GET" ],#需要测试的Request类型"PostReqSkipSection": ["aa","bb"],#POST请求类型需要忽略的section,开启之后所在的sections里面所有的POST类型的请求case都将不会执行。"GetReqSkipSection": ["aa","bb"],#GET请求类型需要忽略的section,开启之后所在的sections里面所有的GET类型的请求case都将不会执行。"PostReqSkipFunction": ["aa","bb"],#POST请求类型需要忽略的case名称,开启之后所有的名字和列表中名字相同的POST类型的请求case都将不会执行。"GetReqSkipFunction": ["aa","bb"], GET请求类型需要忽略的case名称,开启之后所有的名字和列表中名字相同的GET类型的请求case都将不会执行。"Version":[#需要测试的所有的server的版本列表{"VersionNumber": "xx.xx.xx.xx",#版本号"AddressIP": "127.0.0.1",#对应的server的IP"AddressPort": "9999",#对应的server的Port"VersionSkipFunction":[],#本版本不测试的case名称"VersionSkipSection": []##本版本不测试的Section名称},{#同上"VersionNumber": "xx.xx.xx.xc","AddressIP": "127.0.0.1","AddressPort": "9999","VersionSkipFunction":[],"VersionSkipSection": []}]},"Sections": {#这个Sections的名字就叫Sections"Normal":{#名字为function_name的case。"function_name":{"url":"/api/plugInfo",#Version中的IP+PORT+url即是当前请求的URL"ReqHeaderArgs": [],#需要添加的header的内容"ReqContentArgs": [],#需要添加httpcontent内容,位于HTTP-content中。"ReqArgs":[ ##需要添加content内容,位于HTTP-content中。{"aaaa": "bbb"},{"aaaa": "bbb"}#例如www.baidu.com/login?user=aa&passwrod=bb这个请求构造的过程中ReqArgs = [{“user”: “aa”},{“password”:”bb”}]而ReqHeaderArgs和ReqContentArgs可以置空。],"Asserts": [{"/code" : 0, type : equal },{"/cc": 1, type : diff, "force" : 1 }{"/cc": 1, "type": "between", "force" :1,"from": 0, "to": 1}#断言列表,对于server反悔的JSON值。断言的类型有两种,between ,equal和nequal分别表示在from和to之间,相等和不等。如果force值为1,那么说明这个断言是强制满足的。以路径表示返回值的内容。例如:要判断marketingImage的url是否是null,加一个断言即可{"/plug/marketingImage/url": NULL}]}},"Exception":{#这个Sections的名字叫Exception"exception_name":{#同上"url":"/api/plugInfo","ReqHeaderArgs": [],"ReqContentArgs": [],"ReqArgs":[{"aaaa": "bbb"},{"aaaa": "bbb"}]}},"Bound":{#这个Sections的名字叫Bound"exception_name":{#同上"url":"/api/plugInfo","ReqHeaderArgs": [],"ReqContentArgs": [],"ReqArgs":[{"aaaa": "bbb"},{"aaaa" :"bbb"}]}}}}

2.3 主要界面流程描述

2.4 模块列表

模块名称(英文)

功能

备注

模块1Module1

模块2Module2

模块3Module3

3 数据结构

数据表列表

表名

作用

<附SQL数据库结构定义文档>

若未用数据库,可不写

4 模块设计

4.1 Module1设计

<更具具体情况细化模块设计>

4.1.1 模块设计描述

4.1.2 模块界面描述

4.2 Module2设计

5 附录

5.1 遇到问题以及解决方案

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

[C#]winform基于opencvsharp结合pairlie算法实现低光图像增强黑暗图片变亮变清晰

【低光图像增强介绍】 在图像处理领域&#xff0c;低光图像增强是一个具有挑战性的任务。由于光线不足&#xff0c;这些图像往往呈现出低对比度、高噪声和细节丢失等问题&#xff0c;严重影响了图像的视觉效果和后续分析的准确性。因此&#xff0c;开发有效的低光图像增强方法…

WSL安装Ubuntu22.04,以及深度学习环境的搭建

安装WSL 安装 WSL 2 之前&#xff0c;必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。 以管理员身份打开 PowerShell 并运行&#xff1a; dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart下载 Linux 内核更…

初识ONLYOFFICE 8.0:办公软件的革命性升级

引言 随着数字化时代的到来&#xff0c;办公软件已经成为我们日常生活和工作的重要组成部分。在这个充满竞争的市场中&#xff0c;ONLYOFFICE凭借其卓越的性能和功能&#xff0c;脱颖而出&#xff0c;成为许多企业和个人用户的优选。近期&#xff0c;ONLYOFFICE推出了全新的8.…

大数据技术之 Kafka

大数据技术之 Kafka 文章目录 大数据技术之 Kafka第 1 章 Kafka 概述1.1 定义1.2 消息队列1.2.1 传统消息队列的应用场景1.2.2 消息队列的两种模式 1.3 Kafka 基础架构 第 2 章 Kafka 快速入门2.1 安装部署2.1.1 集群规划2.1.2 集群部署2.1.3 集群启停脚本 2.2 Kafka 命令行操作…

http前生今世

HTTP/0.9&#xff0c;仅支持GET方法&#xff0c;并且响应中没有HTTP头信息&#xff0c;只有文档内容。 HTTP/1.0增加了对POST方法、状态码、HTTP头信息等的支持&#xff0c;这一版本也是广泛应用的历史性版本。 HTTP/1.1引入了持久连接&#xff08;Persistent Connections&…

schema: classpath:db/schema.sql 自动建表失败的另一个原因

一、问题产生 想在springboot启动时&#xff0c;自动创建数据库&#xff0c;并执行建表语句&#xff0c;和数据插入语句。于是按照帖子配置了 schema: classpath:db/schema.sql 然而启动时&#xff0c;确报如下错误&#xff1a; com.baomidou.dynamic.datasource.DynamicDataSo…

【洛谷题解】P1303 A*B Problem

题目链接&#xff1a;A*B Problem - 洛谷 题目难度&#xff1a;普及- 涉及知识点&#xff1a;高精度 题意&#xff1a; 分析&#xff1a;直接套用模版即可 AC代码&#xff1a; #include<bits/stdc.h> using namespace std; char n[1000000],m[1000000]; int a[1000…

MIT-BEVFusion系列九--CUDA-BEVFusion部署2 create_core之参数设置

目录 加载命令行参数main 函数中的 create_core图像归一化参数体素化参数稀疏卷积网络参数真实世界几何空间参数 (雷达坐标系下体素网格的参数)解码后边界框的参数构建 bevfusion::Core 存储推理时需要的参数 本章开始&#xff0c;我们将一起看CUDA-BEVFusion的代码流程&#x…

VirtualBox虚拟机磁盘VDI文件压缩瘦身

文章目录 问题现象虚拟机文件目录结构处理方法清除宿主机文件和虚拟机快照虚拟机磁盘瘦身 问题现象 2月7日下午四点多&#xff0c;我已经休假了&#xff0c;某县的客户运维方打来电话&#xff0c;说平台挂了&#xff0c;无法访问 客户是提供的一台Windows server2016机器部署平…

AIOps探索 | 从单一告警管理到统一告警管理

原作者&#xff1a;擎创科技 资深产品专家 布博士 前言 最近发现我们的一些客户&#xff0c;仍在使用十多年前的流程和思想来思考业务和产品的未来。我们认为做产品必须明确该产品未来的业务发展方向&#xff0c;否则研发出的东西只是应对当前可见的需求&#xff08;即项目需求…

【教程】详解相机模型与坐标转换

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 由于复制过来&#xff0c;如果有格式问题&#xff0c;推荐大家直接去我原网站上查看&#xff1a; 相机模型与坐标转换 - 生活大爆炸 目录 经纬度坐标系 转 地球直角坐标系大地直角坐标系 转 经纬度坐标系地理坐标…

感觉我国的程序员前景一片灰暗,是这样吗?

程序员也分为好几等&#xff0c;在现在看来大部分的Android、Java、前端等等开发。已经看不到希望了&#xff0c;很多人都在边缘挣扎&#xff1b;刚看到一位Android开发者&#xff0c;过完年回公司就通知被裁&#xff1b;可见每年都会有很多互联网公司倒闭&#xff0c;或者裁员…

手把手教你:gitee的注册以及代码的提交(上)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 gitee的介绍 首先&#xff0c;我们得了解什么是gitee&#xff1f; gitee是一个基于Git的代码托管和研发协作平台&#xff0c;上面可以托管个人或者公…

【AI学习】LangChain学习

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

服务器遭受 DDoS 攻击的常见迹象有哪些?

服务器遭受 DDoS 攻击的现象很常见&#xff0c;并且有时不容易预防&#xff0c;有部分原因是它们的形式多种多样&#xff0c;而且黑客手段越来越隐蔽。如果您怀疑自己可能遭受 DDoS 攻击&#xff0c;可以寻找多种迹象。以下是 DDoS 攻击的5个常见迹象&#xff1a; 1.网络流量无…

虚拟机+麒麟海光+达梦数据库linux 安装教程

一 下载 虚拟机下载地址下载 VMware Workstation Pro | CN 达梦数据库下载地址 产品下载 | 达梦数据库 (dameng.com) 银河麒麟下载地址 国产操作系统、银河麒麟、中标麒麟、开放麒麟、星光麒麟——麒麟软件官方网站 (kylinos.cn) 二 安装 虚拟机安装 https://www.cnblogs…

python+selenium 定位到元素,无法点击的解决方法

今天小编就为大家分享一篇pythonselenium 定位到元素,无法点击的解决方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小编过来看看吧 selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (234.75, 22)…

【JavaScript 漫游】【017】异步操作概述

文章简介 本文为【JavaScript 漫游】专栏的第 017 篇文章&#xff0c;主要记录了 ES5 规范中异步操作的基本知识点。 单线程模型同步任务和异步任务任务队列和事件循环异步操作的模式 单线程模型 单线程模型指的是&#xff0c;JS 只在一个线程上运行。它同时只能执行一个任…

Mysql如何优化数据查询方案

mysql做读写分离 读写分离是提高mysql并发的首选方案。 Mysql主从复制的原理 mysql的主从复制依赖于binlog&#xff0c;也就是记录mysql上的所有变化并以二进制的形式保存在磁盘上&#xff0c;复制的过程就是将binlog中的数据从主库传输到从库上。 主从复制过程详细分为3个阶段…

每日OJ题_二叉树dfs②_力扣129. 求根节点到叶节点数字之和

目录 力扣129. 求根节点到叶节点数字之和 解析代码 力扣129. 求根节点到叶节点数字之和 129. 求根节点到叶节点数字之和 难度 中等 给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字&am…