实验07 接口测试postman
目录
知识点
1 接口测试概念
1.1为什么要做接口测试
1.2接口测试的优点
1.3接口测试概念
1.4接口测试原理和目的
2 接口测试内容
2.1测什么
2.1.1单一接口
2.1.2组合接口
2.1.3结构检查
2.1.4调用方式
2.1.5参数格式校验
2.1.6返回结果
2.2四大块
2.2.1功能逻辑
2.2.2异常测试
2.2.3路径测试
2.2.4其他异常场景
2.3接口测试的依据
2.3.1需求规范
2.3.2接口文档
2.4测试方法
2.5接口分类
2.6测试流程
3 HTTP原理
3.1请求/应答模型
3.2请求报文
3.2.1原理
3.2.2涵盖内容
3.3请求方法
3.4响应报文
3.5状态码
实验
知识点
-
1 接口测试概念
-
1.1为什么要做接口测试
-
不同段的进度不同,需要对最开始出来的接口进行接口测试
-
-
1.2接口测试的优点
-
节约时间
-
提高工作效率
-
提高系统健壮性
-
-
1.3接口测试概念
-
类型
-
API
-
硬件驱动程序
-
数据库系统的访问接口
-
webservice接口
-
http rest接口
-
-
测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点。
-
-
1.4接口测试原理和目的
-
接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。
-
测试接口的正确性和稳定性(持续集成是接口测试的核心)。
-
-
-
2 接口测试内容
-
2.1测什么
-
2.1.1单一接口
-
输入输出值测试
-
单一接口测试主要测试的是输入输出值,一些具有业务意义的值需要特别测试(例如,1和2分别代表两个测试场景,那么就不能够把他们看成是等价类,需要分开测试
-
-
-
2.1.2组合接口
-
业务场景测试
-
组合接口测试主要是通过组合多个单一接口,来测试一个业务场景 Example:测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。 测试:搜索商品 --> 选中商品 --> 添加进购物车 --> 提交订单 -->支付 (提交订单时还涉及到地址的选取等) [注:涉及到如果使用从cookie或者session在本例中的区别:如果使用cookie加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是session,购物车里面的东西就一直存在,即:cookie是本机作用的,session不止于本机作用
-
-
-
2.1.3结构检查
-
返回值结构
-
(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据
-
(2)字段名称是否正确等
-
-
-
2.1.4调用方式
-
HTTP调用
-
注意:提交数据,一定使用POST方式,不能使用GET方式。
-
-
其他方式
-
-
2.1.5参数格式校验
-
必选项检查
-
非必选项默认值
-
类型
-
取值范围
-
全/半角、大/小写转换。
-
长度
-
-
2.1.6返回结果
-
与需求一致
-
每种错误要有单独且明确的错误码。
-
-
-
2.2四大块
-
2.2.1功能逻辑
-
通过查数据库或缓存等验证数据是否处理正确。
-
通过其他辅助途径进行验证
-
-
2.2.2异常测试
-
接口测试中主要测试接口正常逻辑,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。
-
-
2.2.3路径测试
-
当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。
-
-
2.2.4其他异常场景
-
研发的项目,有些项目是底层使用的系统,根据项目特点,可能会存在特殊的异常场景。
-
例如: 堵命令,支付的异步操作,支付消息重试等。
-
-
-
2.3接口测试的依据
-
2.3.1需求规范
-
2.3.2接口文档
-
涵盖内容
-
1、接口概述:
-
1)接口名称
-
2)接口功能
-
3)接口类别
-
4)提交者、提交时间、需求来源及时间要求
-
-
2、HTTP请求方式
-
3、认证说明
-
4、请求限制说明
-
5、请求参数说明
-
参数名、是否必选、类型、取值范围、描述(非必选项的默认值)
-
-
6、相关约束
-
7、注意事项
-
8、调用示例
-
9、返回说明
-
1)返回数据格式
-
2)返回结果示例
-
3)错误代码及返回说明
-
-
-
示例
-
-
-
2.4测试方法
-
可以通过开发脚本代码进行测试。
-
可以通过开源免费的接口调用调试工具测试或者自动化工具,如:Postman,jmeter等。
-
可以通过App手动测试,结合抓包工具分析,如:Fillder/Charles等。
-
-
2.5接口分类
-
1)API:应用程序编程接口 application
-
示例
-
模块接口测试是单元测试的基础。它主要测试模块的调用与返回 例如: package com.java.base; public class InterfaceTest { //求两个整数相加的和public static int add(int a, int b){return a + b;}public static void main(String[] args) { //测试整数相加int resule = add(1,2);if(resule == 3){System.out.println("success!"); }else{System.out.println("fail!");} } }
-
-
-
2)GUI:图形用户界面(接口)
-
-
2.6测试流程
-
图示
-
-
-
3 HTTP原理
-
3.1请求/应答模型
-
HTTP遵循请求(Request)/应答(Response)模型。Web浏览器向Web服务器发送请求,Web服务器处理请求并返回适当的应答
-
图示
-
-
3.2请求报文
-
3.2.1原理
-
客户端向服务器发送请求时,会给服务器发送一个请求报文。请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。URL只是标识资源的位置,而HTTP报文用来提交和获取资源。客户端发送的HTTP请求消息,包括请求行、请求头部、空行和请求体4个部分。
-
-
图示
-
-
3.2.2涵盖内容
-
请求行
-
请求头部
-
空行
-
请求体
-
-
-
3.3请求方法
-
GET
-
HEAD
-
POST
-
PUT
-
DELETE
-
CONNECT
-
OPTIONS
-
TRACE
-
图示
-
-
3.4响应报文
-
原理
-
图示
-
-
涵盖内容
-
状态行
-
响应头部
-
空行
-
响应体
-
-
-
3.5状态码
-
概念
-
状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值
-
-
可能取值
-
1xx
-
指示信息
-
--表示请求已接收,继续处理
-
-
2xx
-
成功
-
--表示请求已被成功接收、理解、接受
-
-
3xx
-
重定向
-
--要完成请求必须进行更进一步的操作
-
-
4xx
-
客户端错误
-
--请求有语法错误或请求无法实现
-
-
5xx
-
服务器端错误
-
--服务器未能实现合法的请求
-
-
-
具体例子
-
200 OK客户端请求成功
-
404 Not Found请求资源不存在,eg:输入了错误的URL
-
401 Unauthorized请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
-
500 Internal Server Error服务器发生不可预期的错误
-
503 Server Unavailable服务器当前不能处理客户端的请求,一段时间后可能恢复正常
-
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
-
403 Forbidden //服务器收到请求,但是拒绝提供服务
-
-
-
实验
一 实验目的:
1、了解什么是接口测试。
2、理解HTTP工作原理。
3、掌握接口测试用例设计。
4、掌握接口测试工具Postman的使用。
二 实验环境
1、Windows操作系统环境;
2、Java Web项目运行环境;
3、Postman工具。
三 实验准备
1、了解Web项目前后端工作原理;
2、掌握Java Web项目的构建与部署。
四 实验内容
(1)从ftp或者https://www.postman.com/downloads/,下载适合自己操作系统的Postman安装文件,并完成Postman的安装,把安装成功界面截图。
(2)使用Postman创建一个workspace,workspace名称为自己中文名拼音。
(3)在workspace中创建一个collection,命名为cookieshop,针对商品查询接口进行测试,请设计商品查询接口设计文档。
表1 商品查询接口设计说明
接口名称 | ||||
调用方式 | ||||
接口地址 | ||||
接口方法 | ||||
输入参数定义 | ||||
列名 | 字段名 | 类型 | 必填 | 备注 |
返回数据说明 | ||||
接口名称 | 商品查询接口 | |||
调用方式 | HTTP请求 | |||
接口地址 | postman-echo.com/get | |||
接口方法 | GET | |||
输入参数定义 | ||||
列名 | 字段名 | 类型 | 必填 | 备注 |
keyword | searchKey | String | 否 | 查询关键字 |
category | productType | String | 否 | 商品类别 |
priceMin | minPrice | Decimal | 否 | 最低价格 |
priceMax | maxPrice | Decimal | 否 | 最高价格 |
sort | sortType | String | 否 | 排序方式(如:price, popularity) |
page | pageNumber | Integer | 否 | 页码 |
size | pageSize | Integer | 否 | 每页显示的商品数量 |
返回数据说明 | ||||
成功响应:
错误响应:
|
(4)针对以上商品接口设计说明,请运用黑盒测试方法对商品查询接口进行测试用例设计。
表2 商品查询接口测试用例
输入数据 | 预期输出结果 |
用例编号 | 输入数据 | 预期输出结果 | 测试类型 | 备注 |
---|---|---|---|---|
TC01 | 无参数 | 返回所有商品的列表,按默认排序 | 正向测试 | 测试默认行为 |
TC02 | searchKey=chocolate | 返回包含"chocolate"关键字的商品列表 | 正向测试 | 测试关键字搜索 |
TC03 | productType=Cookies | 返回"Cookies"类别的商品列表 | 正向测试 | 测试类别过滤 |
TC04 | minPrice=10&maxPrice=50 | 返回价格在10到50之间的商品列表 | 正向测试 | 测试价格范围过滤 |
TC05 | sortType=price | 按价格升序返回商品列表 | 正向测试 | 测试排序功能 |
TC06 | sortType=-price | 按价格降序返回商品列表 | 正向测试 | 测试排序功能 |
TC07 | pageNumber=2&pageSize=10 | 返回第二页,每页10个商品的列表 | 正向测试 | 测试分页功能 |
TC08 | searchKey=xyz&category=unknown&minPrice=0&maxPrice=1000&sortType=popularity&pageNumber=1&pageSize=5 | 返回符合所有给定参数的商品列表 | 正向测试 | 综合测试 |
TC09 | searchKey=chocolate&category=Biscuits | 返回错误信息,因为"Biscuits"不是有效的类别 | 边界测试 | 测试无效类别 |
TC10 | minPrice=1000&maxPrice=10000 | 返回价格在1000到10000之间的商品列表,如果不存在则返回空列表 | 边界测试 | 测试边界价格范围 |
TC11 | pageNumber=100&pageSize=10 | 返回错误信息或最后一页的商品列表,因为页码超出范围 | 边界测试 | 测试超出范围的页码 |
TC12 | searchKey=;DROP TABLE products; | 返回错误信息,因为包含SQL注入尝试 | 安全性测试 | 测试SQL注入防护 |
TC13 | searchKey=<script> | 返回错误信息或过滤后的搜索结果,因为包含HTML注入尝试 | 安全性测试 | 测试HTML注入防护 |
TC14 | searchKey=chocolate&sortType=invalid | 返回错误信息,因为"invalid"不是有效的排序方式 | 异常测试 | 测试无效排序方式 |
(5)使用Postman接口测试工具,根据表2的测试用例进行接口测试。并提交测试结果。
五 实验总结
(1)为什么要做接口测试。
接口测试是软件测试的一个重要组成部分,主要用于验证不同系统组件或模块之间的交互是否符合预期。以下是进行接口测试的主要原因:
-
确保数据交换正确性:
- 验证接口在不同系统或模块间传递数据时的准确性。
-
功能验证:
- 确保接口实现的功能符合需求规格。
-
系统稳定性:
- 通过接口测试可以发现可能导致系统不稳定的错误。
-
性能评估:
- 评估接口在高负载下的表现,确保其满足性能要求。
-
安全性检查:
- 检查接口是否容易受到安全攻击,如SQL注入、跨站脚本攻击等。
-
兼容性测试:
- 确保接口在不同环境或不同版本间能够正常工作。
-
早期发现缺陷:
- 在开发早期阶段发现接口问题,减少后期修复的成本。
-
促进团队协作:
- 帮助开发团队理解接口规范,提高协作效率。
-
支持持续集成:
- 在持续集成过程中自动测试接口,确保代码变更不会破坏现有功能。
-
文档验证:
- 验证接口文档的准确性和完整性。
(2)接口测试能发现哪些错误?
接口测试能够发现的错误类型广泛,具体包括但不限于:
-
数据验证错误:
- 输入数据不符合预期格式或类型。
-
返回结果错误:
- 接口返回的数据或状态码与预期不符。
-
性能问题:
- 接口响应时间过长或在高负载下表现不佳。
-
安全性漏洞:
- 接口容易受到SQL注入、跨站脚本攻击等安全威胁。
-
兼容性问题:
- 在不同平台或不同版本的客户端中表现不一致。
-
并发问题:
- 在多用户同时访问时接口表现异常。
-
资源泄露:
- 接口未能正确释放占用的资源,如数据库连接、内存等。
-
异常处理不当:
- 接口在遇到异常情况时未能正确处理。
-
依赖关系错误:
- 接口依赖的其他服务或资源不可用时表现异常。
-
版本兼容性:
- 新旧版本接口之间的兼容性问题。
-
路径错误:
- 接口未能正确处理请求路径或参数。
-
文档与实现不符:
- 实际接口实现与文档描述不一致。
相关文章:
实验07 接口测试postman
目录 知识点 1 接口测试概念 1.1为什么要做接口测试 1.2接口测试的优点 1.3接口测试概念 1.4接口测试原理和目的 2 接口测试内容 2.1测什么 2.1.1单一接口 2.1.2组合接口 2.1.3结构检查 2.1.4调用方式 2.1.5参数格式校验 2.1.6返回结果 2.2四大块 2.2.1功能逻辑…...
C++常用但难记的语法
模板函数的声明和定义必须在同一个文件中。 C中每一个对象所占用的空间大小,是在编译的时候就确定的,在模板类没有真正的被使用之前,编译器是无法知道,模板类中使用模板类型的对象的所占用的空间的大小的。只有模板被真正使用的时…...
Qt 快速保存配置的方法
Qt 快速保存配置的方法 一、概述二、代码1. QFileHelper.cpp2. QSettingHelper.cpp 三、使用 一、概述 这里分享一下,Qt界面开发时,快速保存界面上一些参数配置的方法。 因为我在做实验的时候,界面上可能涉及到很多参数的配置,我…...
RKE部署k8s
移除docker(非必要) rm -rf /etc/docker rm -rf /run/docker rm -rf /var/lib/dockershim rm -rf /var/lib/docker yum list installed | grep docker yum remove ***rke部署k8s集群 cat > /etc/sysctl.conf << EFO net.ipv4.ip_forward 1 n…...
从0开始的STM32HAL库学习8
PWM控制舵机 配置环境 1. 选择TIM2时钟 2.选择内部时钟模式,打开通道二 3.分频系数PSC:72-1 自动重装寄存器ARR:20000-1 输出比较寄存器 CCR:500~2500( 后面可调整 ) 脉冲选择500后期可以改 编辑代码 调用启动函数 HAL_TIM_PWM_Start(&htim2,TIM_CHANN…...
微信小程序数组绑定使用案例(一)
微信小程序数组绑定案例,修改数组中的值 1.Wxml 代码 <view class"list"><view class"item {{item.ischeck?active:}}" wx:for"{{list}}"><view class"title">{{item.name}} <text>({{item.id}…...
Kudu节点数规划
作者:南墨 一、概述 由于Kudu是Hadoop生态的一部分(虽然它不依赖于Hadoop生态系统),因此大多数实际应用场景需要的不仅仅是Kudu;为了输入数据,可能需要Kafka、StreamSets或Spark Streaming;对…...
flutter 充电气泡
前言: 之前一直看到 有手机充电的时候 有气泡从Type-C 的位置冒泡上来 慢慢上移, 然后和上面的圆圈 会和,感觉还是挺好看的。今天试了下用 Flutter 实现了一版本。大致效果如下,而且气泡 和 气泡直接还可以粘黏 实现原理ÿ…...
【C++】deque以及优先级队列
容器适配器 deque的介绍deque的原理介绍 priority_queue的介绍与使用priority_queue的介绍priority_queue的使用constructor(构造函数)emptypushpoptopsize priority_queue的模拟实现 仿函数何为适配器容器适配器deque的缺陷选择deque作为适配器的理由ST…...
手机如何播放电脑的声音?
准备工具: 有线耳机,手机,电脑,远控软件 1.有线耳机插电脑上 2.电脑安装pc版远控软件,手机安装手机端控制版远控软件 3.手机控制电脑开启声音控制 用手机控制电脑后,打开声音控制,电脑播放视频…...
系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读
系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS) 3.6.1 办公自动化系统的概念3.6.1.1 办公活动3.6.1.1 办公自动化的概念 3.6.2 办公自动化系统的功能3.6.2.1 事务处理3.6.2.1.1 单机系统3.6.2.1.2 多机系统 3.6.2.2 信息管理3.6.2.…...
解决Element UI 表格组件懒加载数据刷新问题
一、问题描述 element ui的table组件设置成懒加载时,遇到数据表格需要更新、删除等操作,子节点不会自动更新。 二、解决思路 刷新数据,就是重新调用load(),通过map记录已展开的节点,需要刷新…...
【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决
主从复制的架构设计如下图所示: 同步原理 具体到数据库之间是通过binlog和复制线程操作的: Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启,binlog dump线程,该线程…...
Ubuntu Grub引导优化
配置文件 sudo vim /etc/default/grub修改参数 引导菜单等待时间 GRUB_TIMEOUT3自动引导上次选择的系统 如果安装了双系统或多系统,可以考虑配置此参数。 # 此参数默认值为0,引导第一个引导项 GRUB_DEFAULTsaved# 此参数默认没有,需要手…...
第3关 -- Git 基础知识
任务1: 破冰活动:自我介绍 任务2: 实践项目:构建个人项目 MeiHuaYiShu...
AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘
问题: 跑之前的python爬虫代码的时候报错 AttributeError: WebDriver object has no attribute find_element_by_xpath 源代码: elements self.driver.find_elements_by_xpath("//tbody[starts-with(id,normalthread)]/tr/th/a[1]")原因&…...
题解:小S与机房里的电脑 Computer_C++算法竞赛_贪心_二分答案_模拟_数据结构
文章目录 小S与机房里的电脑 Computer传统题题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 提示解题思路AC CodeEnd 小S与机房里的电脑 Computer 传统题 时间限制: 1000ms内存限制: 256MiB 题目描述 最近小S想带他的学生打组队娱乐赛,…...
Python @staticmethod、super().__init__()和self
最近在看代码,由于之前没有系统学习过Python,就有些知识点不是很清楚,这里整理一下,方便以后查阅。 Python中的staticmethod\super.init和self Python 装饰器staticmethod和classmethod的作用与区别作用区别代码演示 super() 函数…...
Linux网络:应用层协议HTTP(一)
一、什么是HTTP协议 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。 在互联网世界中,HTTP(HyperText Transfer Protocol&…...
Tomcat底层原理
Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,用于运行Java Web应用。它是由Apache软件基金会开发和维护的。以下是对Tomcat底层原理的详细解析: 1. 启动流程 Tomcat的启动流程主要分为以下几个…...
【Linux】Linux环境设置环境变量操作步骤
Linux环境设置环境变量操作步骤 在一些开发过程中本地调试经常需要依赖环境变量的参数,但是怎么设置对小白来说有点困难,今天就介绍下具体的操作步骤,跟着实战去学习,更好的检验自己的技术水平,做技术还是那句话&…...
C语言:键盘录入案例
主要使用了scanf; scanf的使用方法和注意事项: 1.作用: 用于接收键盘输入的数据并赋值给对应的变量 2.使用方式; scanf("占位符",&变量名); 3.注意事项; 占位符后面的的变量要对应 第一个参数中不写换行 案例1…...
Nginx 中如何实现请求的排队机制?
Nginx 中如何实现请求的排队机制? 在当今数字化的时代,网站和应用的流量就如同潮水一般,时涨时落,时急时缓。想象一下,当流量如洪水猛兽般汹涌而来,服务器就像是那抗洪的堤坝,如果没有有效的管…...
synergy配置
今天介绍一个电脑同步软件synergy。 我们开发时一般会用两套设备,如果使用两套键盘操作起来会很麻烦,这个软件就是解决这个问题,可以使用一套键盘同时操作两台电脑,另一台作为客户端被控制。 安装 在两台电脑上各自下载安装syne…...
Qt开发网络嗅探器03
数据包分析 想要知道如何解析IP数据包,就要知道不同的IP数据包的包头结构,于是我们上⽹查查资料: 以太网数据包 ARP数据包 IPv4 IPv6 TCP UDP ICMP ICMPv6 根据以上数据包头结构,我们就有了我们的protocol.h文件,声明…...
抖音短视频seo矩阵系统源码开发技术分享(二)--SaaS开源
目录 市场背景分析 一、抖音短视频seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音短视频seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 抖音短视频seo矩阵系统是通过不同平台不同账号之间建立联系,通过将同一品牌下不同平台不同账号…...
git-常用基础指令
一、基本指令 1. 配置用户名和邮箱 git config --global user.name "Your Name" git config --global user.email "your.emailexample.com"2. 初始化仓库 git init3. 克隆仓库 git clone <repository_url>4. 查看当前状态 git status5. 添加文件…...
Inconsistent Query Results Based on Output Fields Selection in Milvus Dashboard
题意:在Milvus仪表盘中基于输出字段选择的不一致查询结果 问题背景: Im experiencing an issue with the Milvus dashboard where the search results change based on the selected output fields. Im working on a RAG project using text data conv…...
视觉巡线小车——STM32+OpenMV
系列文章目录 第一章:视觉巡线小车——STM32OpenMV(一) 第二章:视觉巡线小车——STM32OpenMV(二) 第三章:视觉巡线小车——STM32OpenMV(三) 第四章:视觉巡…...
升级TrinityCore 服务器硬件
升级服务器 原服务器架构:Ubuntu装VirtualBox装Ubuntu虚拟机 原配置: 宿主机 内存4G 内核4 usb外接硬盘 Ubuntu虚拟机 内存1756MB 内核4 ip 192.168.0.12 升级服务器架构:FreeBSD装bhyve装Ubuntu虚拟机 新配置:宿主机 内存…...
网络公司名字免费起名大全/aso优化排名推广
文 / 李杰,常务董事、片区联席会议总裁、人力资源管理部总裁来源:《华为人报》2006年我刚担任GTS总裁的时候,公司已经开始重视项目经理队伍的建设了。当时公司的要求是建一支200人的项目经理队伍,我们从一个非常小的组织ÿ…...
保险做的好的网站有哪些内容/网站关键词优化网站推广
今天要做的是获取UG安装目录中的后处理文件,后处理文件以“*.pui”为后缀。这里我要做的就是批量获取UG安装目录中符合后缀名的文件名称,然后将这些名称提供给UG对话框进行显示。获取UG安装路径用户可能把UG安装在任何目录,所以没法指定固定…...
asp网站代码/百度网址大全
1、中文与英文数字混合使用,排版有规范写作中,我们经常遇到以下中文与英文、数字混用的情况。我自学python编程,是在xue.cn上进行的。时耗方面,基础功仅需50多小时,加上很多实战,包括初步运用pandas和爬虫处…...
简述建设网站的步骤6/网站建站公司
光做C了,做完C,就要结束了,看了看D,没看懂那操作啥意思,就扔了。 刚才看了看,突然懂了。。 就是每个人从那堆牌上边拿牌,最少拿一张,最多可以全拿走,然后手里留下最后一张…...
网站宝二级域名怎么设置/产品如何做线上推广
情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下。 a.bat echo off echo I am a.bat… echo now run the b.bat call b.bat echo over b.bat echo off echo I am b…...
网站 建设ppt模板/关键词搜索排名工具
最近的工作我在做一个有关于消息发送和接受封装工作。大概流程是这样的,消息中间件是采用rabbitmq,为了保证消息的绝对无丢失,我们需要在发送和接受前对消息进行DB落地。在发送前我会先进行DB的插入,单表插入,所以在性…...