当前位置: 首页 > news >正文

接口测试工具开发文档

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 遇到问题以及解决方案

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

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

相关文章:

接口测试工具开发文档

1 开发规划 1.1 开发人员 角 色 主要职责 负责模块 人员 备注 n xxx模块 xxx 1.2 开发计划 <附开发计划表> 1.3 开发环境和工具 开发工具 工具 作用 Notepad 编辑器 Perl 解释器 2 总体设计 设计思路&#xff1a;因为测试app和server。首先必须…...

面试题速记:JavaScript有哪些数据类型,它们的区别是?

JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; JavaScript共有八种数据类型&#xff0c;分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型&#xff1a; ●Symbol 代表创建后独一无二…...

Spring Cloud面试题

为什么需要学习Spring Cloud 不论是商业应用还是用户应用&#xff0c;在业务初期都很简单&#xff0c;我们通常会把它实现为单体结构的应用。但是&#xff0c;随着业务逐渐发展&#xff0c;产品思想会变得越来越复杂&#xff0c;单体结构的应用也会越来越复杂。这就会给应用带…...

计算机网络自顶向下-web页面请求历程

1. 准备: DHCP、 UDP、 IP 和以太网 假定 Bob 启动他的便携机&#xff0c;然后将其用一根以太网电缆连接到学校的以太网交换机 &#xff0c; 交换机与学校的路由器相连。学校的路由器与一个 ISP 连接&#xff0c; 本例中 ISP 为 comcast.net &#xff0c;为学校提供了 DNS 服务…...

打造西南交通感知新范式,闪马智能携手首讯科技落地创新中心

9月4日&#xff0c;2023年中国国际智能产业博览会&#xff08;以下简称“智博会”&#xff09;在重庆拉开帷幕。大会期间&#xff0c;由上海闪马智能科技有限公司&#xff08;以下简称“闪马智能”&#xff09;与重庆首讯科技股份有限公司&#xff08;以下简称“首讯科技”&…...

Android11去掉Settings中的网络和互联网一级菜单

碰到一个不要wifi不要蓝牙的项目&#xff0c;客户要求去掉Settings中的网络和互联网一级菜单&#xff0c;因为硬件都不贴&#xff0c;所以软件对应也要去掉。 我们可以根据packages/apps/Settings/res/xml/top_level_settings.xml的布局文件找到TopLevelNetworkEntryPreferenc…...

基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的五子棋小游戏&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&a…...

JDBC入门到精通-10w总结

JDBC核心技术 笔记是以尚硅谷讲师宋红康JDBC课程为基础&#xff0c;加入自身学习体会&#xff0c;略有修改 第1章&#xff1a;JDBC概述 JDBC是java应用程序和数据库之间的桥梁。JDBC提供一组规范&#xff08;接口&#xff09;。向上是面向应用API&#xff0c;共应用程序使用。向…...

Linux之查看so/bin依赖(三十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

day-45 代码随想录算法训练营(19)动态规划 part 07

70.爬楼梯&#xff08;进阶&#xff09; 分析&#xff1a;基本动态规划转换为完全背包&#xff0c;因为1、2 两种上楼梯方式是无限选择的 思路&#xff1a; 1. j 表示 容量为 j 时&#xff0c;装满有dp[j]种方法2. dp[j]dp[j-nums[i]]3. 初始化 dp[0]1,dp[1]14. 遍历顺序&am…...

static关键字和final关键字

在java的关键字中&#xff0c;static关键字和final关键字是两个必须掌握的关键字。static关键字和final关键字用法多样&#xff0c;且在一定环境下使用&#xff0c;可以提高程序的运行性能&#xff0c;优化程序的结构。下面将依次介绍static关键字和final关键字。注意&#xff…...

使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言 当我们使用 Postman 进行接口测试时&#xff0c;对于简单的不需要处理的接口&#xff0c;直接请求即可&#xff0c;但是对于需要处理的接口&#xff0c;如需要转码、替换值等&#xff0c;则就麻烦一些&#xff0c;一般我们都是先手动把修改好的值拷贝到请求里再进行请…...

QT第二天

1.优化登陆界面&#xff0c;当点击登录按钮后&#xff0c;在该按钮对应的槽函数中&#xff0c;判断账户和密码框内的数据是否为admin和123456&#xff0c;如果账户密码匹配成功&#xff0c;则提示登陆成功并关闭登录界面&#xff0c;如果账户密码匹配失败&#xff0c;则提示登录…...

鸿蒙应用程序入口UIAbility详解

一、UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供窗口在其中绘制界面。每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任务。一个应用可以有一个UIAbility&am…...

扫地僧站群·静态养站王:自动万站智能LOGO功能说明

扫地僧站群静态养站王:自动万站智能LOGO功能说明,无需配置,自动根据网站状态生成对应LOGO&#xff0c;高质量LOGO万站不重样.说明&#xff1a;模板调用智能LOGO方式&#xff1a;{当前域名}/logo.png 自动识别HTTP/HTTPS 只需在模板需要展示LOGO的地方放上如上标签即可。以下为L…...

【Day-32慢就是快】代码随想录-二叉树-合并二叉树

给定两个二叉树&#xff0c;想象当你将它们中的一个覆盖到另一个上时&#xff0c;两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠&#xff0c;那么将他们的值相加作为节点合并后的新值&#xff0c;否则不为 NULL 的节点将直接…...

接口测试系列 —— 什么是接口测试?

接口测试系列 为什么要做这个事情&#xff1f; 对自己过往在接口测试上的经验&#xff0c;写一个小结的系列文章&#xff0c;是一个系统性的思考和知识构建。发布的同时&#xff0c;也是希望获得更多感兴趣的同学的意见和反馈&#xff0c;可以把这个部分做的更好。 接口测试概…...

qt作业day2

//widget.cpp#include "widget.h" #include "ui_widget.h"void Widget::usr_login() {if("admin" this->edit_acc->text()){if("123456" this->edit_psd->text()){speech->say("登录成功");emit jump_sig1…...

JWT一篇通

JWT 是什么&#xff1f; JWT&#xff08;JSON Web Token&#xff09;是一种开放的标准&#xff0c;标准的编号是RFC7591。用于在不同实体之间安全地传输信息。它是基于 JSON 编码的令牌。 JWT 的组成 JWT由三个部分组成&#xff1a;头部&#xff08;Header&#xff09;、载荷…...

【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件

vue中自定义按钮设置disabled属性后&#xff0c;异常触发click事件 项目中自定义按钮&#xff0c;使用a标签实现。设置disabled属性后&#xff0c;点击可以触发click事件。 由于各种原因&#xff0c;项目中并未使用成熟的第三方组件库&#xff0c;例如element-ui&#xff0c;a…...

uni.uploadFile上传图片失败排查:Content-Type与boundary的隐藏陷阱

1. 为什么uni.uploadFile上传图片会失败&#xff1f; 最近在做一个uniapp项目时&#xff0c;遇到了一个让人头疼的问题&#xff1a;使用uni.uploadFile上传图片时&#xff0c;后端死活接收不到文件数据。经过一番排查&#xff0c;发现问题出在Content-Type这个看似简单的请求头…...

掌握SQL窗口函数,轻松处理复杂数据分析

SQL 窗口函数&#xff08;Window Function&#xff09;是一种强大的分析工具&#xff0c;能够在不缩减原始数据行数的前提下执行复杂计算。这种函数通过对一组相关数据行&#xff08;称为"窗口"&#xff09;进行计算&#xff0c;并将结果直接附加到每一行记录中。窗口…...

几种因网络波动导致应用与数据库操作异常的现象

文章目录环境文档用途详细信息环境 系统平台&#xff1a;银河麒麟 &#xff08;X86_64&#xff09; 版本&#xff1a;4.5.8 文档用途 介绍几种因网络波动导致应用与数据库操作异常的现象。 详细信息 网络超时相关 应用端常见的连接超时相关报错信息&#xff0c;如&#x…...

基于Verilog的74LS181 ALU设计与Quartus II实现

1. 从零开始理解74LS181 ALU 第一次接触数字逻辑设计时&#xff0c;看到74LS181这个编号可能会觉得头大。其实这就是个经典的4位算术逻辑单元(ALU)芯片&#xff0c;相当于CPU中的"计算器"。我在大学实验室第一次用它做加法运算时&#xff0c;那种"原来计算机是这…...

Windows DLL注入工具Xenos全攻略:从原理到实践的系统指南

Windows DLL注入工具Xenos全攻略&#xff1a;从原理到实践的系统指南 【免费下载链接】Xenos Windows dll injector 项目地址: https://gitcode.com/gh_mirrors/xe/Xenos 一、技术原理&#xff1a;Xenos注入引擎的底层架构 1.1 三级注入引擎的工作机制 Xenos作为专业的…...

FDTD复现Science正刊:二次谐波产生的奇妙之旅

FDTD复现Science正刊&#xff0c;二次谐波产生 嘿&#xff0c;大家好&#xff01;今天来聊聊用FDTD方法复现Science正刊中二次谐波产生的相关研究&#xff0c;这可是个超有趣的领域。 什么是二次谐波产生&#xff1f; 二次谐波产生&#xff08;Second Harmonic Generation&a…...

DeepSeek-Coder-V2本地化部署指南:构建企业级代码智能助手

DeepSeek-Coder-V2本地化部署指南&#xff1a;构建企业级代码智能助手 【免费下载链接】DeepSeek-Coder-V2 DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-V2 …...

11,2kw双向储能变换器:基于PFCLLC结构的工业应用仿真研究

11&#xff0c;2kw双向储能变换器仿真&#xff0c;已工业应用。 pfcllc结构&#xff0c;可整流&#xff0c;可逆变。 整流模式下&#xff0c;pfc为单相pwm整流器&#xff0c;输入电压220V&#xff0c;50Hz&#xff0c;llc输出电压55V。 逆变模式下&#xff0c;llc输入电压55V&a…...

效率提升300%:OpenClaw+Phi-3-vision-128k-instruct重构我的学术工作流

效率提升300%&#xff1a;OpenClawPhi-3-vision-128k-instruct重构我的学术工作流 1. 从手动到自动的学术工作流革命 作为一名每天需要处理大量文献、实验数据和演示材料的科研工作者&#xff0c;我曾经花费近40%的工作时间在重复性文档处理上——截图标注、图表整理、笔记归…...

【Proteus 仿真实战】基于51单片机的智能测距与自适应报警系统设计

1. 项目背景与核心功能 最近在做一个基于51单片机的智能测距系统仿真项目&#xff0c;发现很多初学者对如何实现自适应报警功能特别感兴趣。这个项目最吸引人的地方在于它不仅仅是个简单的距离测量装置&#xff0c;而是能根据危险程度自动调整报警策略的智能系统。想象一下&…...