文章目录

  • 1 接口测试概述
    • 1.1 接口测试的定义
    • 1.2 接口测试的范围和适用场合
  • 2 接口测试的必备条件
    • 2.1 接口测试的要求
    • 2.2 标准和规范的接口文档
    • 2.3 如何获取接口信息
  • 3 接口测试必须具备的知识
    • 3.1 常见的接口传输协议
    • 3.2 常见的接口测试工具
    • 3.3 常见的接口数据组织形式
  • 4 接口测试用例设计
    • 4.1 用例设计方法
    • 4.2 接口测试用例模板
  • 5 HTTP协议基础
    • 5.1 什么是HTTP协议
    • 5.2 HTTP协议的工作原理
    • 5.3 HTTP协议特性
    • 5.4 与HTTPS协议的关系
    • 5.5 HTTP请求消息结构(重点)
    • 5.6 HTTP请求方法(重点)
    • 5.7 HTTP响应的组成
    • 5.8 HTTP响应头信息(了解)
    • 5.10 HTTP响应状态码
  • 6 Postman
    • 6.1 Postman安装
    • 6.2 Postman的应用
      • 6.2.1 Postman发送请求
      • 6.2.2 参数化运行
    • 6.3 postman中的断言
      • 6.3.1 postman提供的内置断言
      • 6.3.2 使用断言
  • 7 json
    • 7.1 json定义
    • 7.2 json的特点
    • 8.3 json语法规则
    • 7.4 json 文件
  • 8 xml
    • 8.1 什么是xml
    • 8.2 xml用途
    • 8.3 json VS xml(重点)
  • 小结

1 接口测试概述

1.1 接口测试的定义

API (Application Program Interface)接口属于一种系统或程序的调用接口。
GUI(Graphic User Interface)接口属于一种图形界面的操作软件的系统。
尤其是APl,有些公司会制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式APl。
接口测试:测试系统内部各个组件间接口,以及系统与外部系统之间的交互点。
接口测试的主要内容:
检查数据的交换;
传递和控制管理过程;
系统间的相互逻辑依赖关系。

1.2 接口测试的范围和适用场合

接口测试的范围如下图:

接口测试的适用场合:
应用于多系统间交互开发;
适用于为其他系统提供服务的底层框架系统和中心服务系统;
适用于一个上次系统中的服务层接口。
总之,平台越复杂,系统越庞大,接口测试的效果越明显。

2 接口测试的必备条件

2.1 接口测试的要求

接口说明调用url;
请求方法(get/post);
请求参数、参数类型、请求参数说明返回参数说明。

2.2 标准和规范的接口文档

百度翻译API

2.3 如何获取接口信息

标准化的接口文档;
询问开发人员,获取预期结果,一般以预期结果为标准;
测试人员抓包获取数据和信息,得到的是实际运行的结果。

3 接口测试必须具备的知识

接口测试必须具备的知识有接口传输协议、接口测试工具和接口数据组织形式。

3.1 常见的接口传输协议

HTTP。超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
HTTPS 。HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
FTP。FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
JDBC。Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

3.2 常见的接口测试工具

谷歌浏览器。
火狐浏览器。
POSTMAN,只能用于http和https。

JMeter。

Fiddler,抓包工具。

3.3 常见的接口数据组织形式

html
json
String
xml

4 接口测试用例设计

接口测试用例设计与黑盒测试用例设计基本一致。

4.1 用例设计方法

等价类,边界值;因果图,判定表;正交试验法;场景法;错误猜测法;随机测试。

4.2 接口测试用例模板

5 HTTP协议基础

可以查看菜鸟教程,如下网站:

https://www.runoob.com/http/http-tutorial.html

5.1 什么是HTTP协议

HTTP协议是Hyper text Transfer Protocol(超文本传输协议)的缩写;
HTTP协议是从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传输协议;
HTTP是一个基于TCP/IP通信协议来传递数据(html文件,图片文件,音乐文件,视频文件,查询结果等)。

5.2 HTTP协议的工作原理

HTTP协议工作在客户端-服务端架构(C/S)上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

5.3 HTTP协议特性

HTTP是无连接。无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP是媒体独立的。这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
HTTP是无状态。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP协议通信流程,如下图:

5.4 与HTTPS协议的关系

超文本传输安全协议(Hypertext Transfer Protocol over Secure Socket Layer)是一种网络安全传输协议。HTTP协议传输的数据都是未加密的,也就是明文,因此使用HTTP协议传输隐私信息非常不安全。HTTP使用80端口通讯,而HTTPS占用443端口通讯。
HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS协议和HTTP协议的区别
HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费。
HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
HTTP的连接很简单,是无状态的 。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议, 要比HTTP协议安全。

5.5 HTTP请求消息结构(重点)

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,请求报文的一般格式,如下图:

5.6 HTTP请求方法(重点)

HTTP1.0 定义了三种请求方法: GET、POST和HEAD方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
大多数情况下都是使用GET和POST方法。

方法 描述
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

5.7 HTTP响应的组成

HTTP响应由四个部分组成,分别是:状态行、消息报头、空行和响应正文。具体格式如下图:

5.8 HTTP响应头信息(了解)

响应头 说明
Allow 服务器支持哪些请求方法(如GET、POST等)。
Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。
Content-Length 表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。
Content-Type 表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。
Date 当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。
Expires 应该在什么时候认为文档已经过期,从而不再缓存它?
Last-Modified 文档的最后改动时间。
Location 表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302。
Refresh 表示浏览器应该在多少时间之后刷新文档,以秒计。除了刷新当前文档之外,你还可以通过setHeader(“Refresh”, “5; URL=http://host/path”)让浏览器读取指定的页面
Server 服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。
Set-Cookie 设置和页面关联的Cookie。
WWW-Authenticate 客户应该在Authorization头中提供什么类型的授权信息。在包含401(Unauthorized)状态行的应答中这个头是必需的。

5.10 HTTP响应状态码

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。
HTTP 状态码的英文为 HTTP Status Code。

下面是常见的 HTTP 状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。

分类 描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

6 Postman

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。

6.1 Postman安装

下方为Postman官方网站

https://www.postman.com/

6.2 Postman的应用

6.2.1 Postman发送请求

(1)不带参数的get请求
第一,打开Postman.

第二,创建一个Collection,名为demo,用于保存所有接口请求,如下图:

第三,创建一个请求,请求方法为get类型,请求的url为:,如下图:

第四,点击【Send】按钮,发送请求,如下图:

第五,在Rsopnse区域,分析服务器返回的信息,如下图:

Body区域:显示服务器返回的信息的主体。
Cookies区域:服务器返回的所有cookie值。(用于验证客户端和服务端的身份信息)
Headers区域:服务器返回的响应头部信息。
Test Results:断言。判断服务器返回的响应信息和预期结果是否一致。(重点)
响应的其他信息。Satus(状态码)、Time(响应时间)、Size(响应信息的大小)

第六,请求案例内容保存。(Ctrl + S)

第七,分析接口的响应结果时,高清楚每一个返回值是什么,及其取值范围。

(2)带参数的get请求
以百度翻译API为例子,API文档说明,下述链接:

https://api.fanyi.baidu.com/api/trans/product/apidoc#languageList

第一,打开Postman。
第二,创建一个Collection,用于保存所有接口请求,如下图:

第三,创建一个请求,请求方法为get类型,请求url为http://api.fanyi.baidu.com/api/trans/vip/translate,如下图:

第四,添加参数,在请求区的Params里面添加参数:输入参数名及参数的值。如果有多个参数,依次输入,如下图:

第五,点击【Send】按钮,发送请求,如下图:

第六,在Response区域,分析服务器返回的信息,如下图:

Body区域:显示服务器返回的信息的主体。
Cookies区域:服务器返回的所有cookie值。(用于验证客户端和服务端的身份信息)
Headers区域:服务器返回的响应头部信息。
Test Results:断言。判断服务器返回的响应信息和预期结果是否一致。(重点)
响应的其他信息。Satus(状态码)、Time(响应时间)、Size(响应信息的大小)

第七,请求案例内容保存。(Ctrl + S)

第八,分析接口的响应结果时,搞清楚每一个返回值是什么,及其取值范围。
输出参数
返回结果是json格式,包含以下字段:

翻译源语言为英语,译文语言为中文,返回翻译结果,包含src和dst字段。原文为bass,译文为低音的。

(3)带参数的post请求
以QQ注册网页为例子
第一,在Chrome浏览器获取接口地址和参数信息。
接口地址,如下图:

参数信息,如下图:

第二,在Postman中设定参数,post形式,Bady下的form-data下设定参数,如下图:

6.2.2 参数化运行

什么是参数化?
使用变量代替常量的方式。
(1)设置参数
Postman中支持text文件和csv文件设计参数文件
例子:百度翻译API
将翻译的内容和签名写在csv文件中,如下图:

在postman中新建collection,输入url和参数,如下图:

(2)集合运行
新建runner,选中文件,输入迭代次数15,文件123.csv,保存响应和参数变化,点击运行,如下图:

6.3 postman中的断言

自动化测试关键的两个点,一是参数化,二是断言。

6.3.1 postman提供的内置断言

在postman中,test模块是对HTTP的响应结果进行判断的地方,如下图:

6.3.2 使用断言

断言就是在脚本之中的。

自动化测试的工具共性:都有设置参数化的模块;都有设置断言的模块;都能够处理一些脚本语言。
postman中脚本支持的语言:Javascript。(包含一个非常强大的Node.js)
postman中脚本应用的场合:
断言(test模块)。在接收到HTTP的响应后进行处理和运行。
预处理信息(pre-request script)。在HTTP请求发送之前进行数据的处理和运行,可以配合参数化进行。
控制请求的运行。跳转某一个请求,或者循环执行某一个请求。

脚本执行顺序:预处理信息→控制请求的运行→断言

例子:百度翻译API
第一添加测试的网址和参数,如下图:

第二,添加断言,状态码为200,响应时间少于500ms,如下图:

最后,点击【Send】按钮运行,查看结果,如下图:

插入一个json结果判断的断言。返回值是一个组合的(多个等级)字典行数据。
例子:百度翻译API测试后的结果如下代码:

{"from": "en","to": "zh","trans_result": [{"src": "bass","dst": "低音的"}]
}

分析上述代码:有个最外层的对象,对象里有3组键值对,第3组的值是一个列表,该列表里面有一个对象,该对象里有两组键值对。
要求:对上述json结果做断言
代码如下:

pm.test("翻译的源文语言", function () {var jsonData = pm.response.json();pm.expect(jsonData.from).to.eql("en");
});pm.test("翻译后的语言", function () {var jsonData = pm.response.json();pm.expect(jsonData.to).to.eql("zh");
});pm.test("需要翻译的单词", function () {var jsonData = pm.response.json();pm.expect(jsonData.trans_result[0].src).to.eql("bass");
});pm.test("该单词的中文意思", function () {var jsonData = pm.response.json();pm.expect(jsonData.trans_result[0].dst).to.eql("低音的");
});

点击【Send】按钮,运行结果如下图:

7 json

json:JavaScript Object Notation(JavaScript 对象表示法)
json是存储和交换文本信息的语法,类似 XML。
json比xml更小、更快,更易解析。

7.1 json定义

json指的是JavaScript对象表示法(JavaScript Object Notation)。
json是轻量级的文本数据交换格式。
json独立于语言。
json具有自我描述性,更易理解。
json使用JavaScript语法来描述数据对象,但是json仍然独立于语言和平台。
json捷信起和json库支持许多不同的编程语言。

7.2 json的特点

json是纯文本的。
json具有“自我描述性”(一看就看懂)。
json具有层级结构。
json可通过JavaScript进行解析。

8.3 json语法规则

JSON 语法是 JavaScript 语法的子集。
数据在名称/值对中。
数据由逗号分隔。
大括号 {} 保存对象。
中括号 [] 保存数组,数组可以包含多个对象。

JSON 对象在大括号 {} 中书写:

{key1 : value1, key2 : value2, ... keyN : valueN }

例如:

{"sites": [{ "name":"百度" , "url":"www.百度.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" }]
}

这个sites对象是包含3个对象的数组。

7.4 json 文件

JSON 文件的文件类型是 .json
JSON 文本的 MIME 类型是 application/json

8 xml

XML 被设计用来传输和存储数据。

8.1 什么是xml

XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。

xml例子:

<sites><site><name>百度</name> <url>www.百度.com</url></site><site><name>google</name> <url>www.google.com</url></site><site><name>微博</name> <url>www.weibo.com</url></site>
</sites>

8.2 xml用途

xml把数据从html分离。
XML 简化数据共享。
XML 简化数据传输。
XML 简化平台变更。

8.3 json VS xml(重点)

JSON 与 XML 的相同之处:
JSON 和 XML 数据都是 “自我描述” ,都易于理解。
JSON 和 XML 数据都是有层次的结构。
JSON 和 XML 数据可以被大多数编程语言使用。

JSON 与 XML 的不同之处:
JSON 不需要结束标签。
JSON 更加简短。
JSON 读写速度更快。
JSON 可以使用数组。

最大的不同是:XML 需要使用 XML 解析器来解析,JSON 可以使用标准的 JavaScript 函数来解析。

小结

接口测试:测试系统内部各个组件间接口,以及系统与外部系统之间的交互点。
接口测试的要求:
接口说明调用url;
请求方法(get/post);
请求参数、参数类型、请求参数说明返回参数说明。
常见的接口传输协议:HTTP、HTTPS、FTP和JDBC。
常见的接口测试工具:谷歌浏览器、火狐浏览器、POSTMAN、JMeter和Fiddler抓包工具。
常见的接口数据组织形式:html、json、string和xml。

HTTP是一个基于TCP/IP通信协议来传递数据(html文件,图片文件,音乐文件,视频文件,查询结果等)。
HTTP是无连接、媒体独立的和无状态。
HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTP的端口号为80,HTTPS端口号为443。
HTTP请求消息结构请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
HTTP请求方式主要是get和post。get请求指定的页面信息,并返回实体主体。post向指定资源提交数据进行处理请求。
HTTP响应由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。
postman断言在test模块中添加,test模块的右侧有现成的方法,可直接点击使用,或修改参数值使用。

软件测试 接口测试 接口测试的必备条件 接口测试用例设计 HTTP协议基础 Postman相关推荐

  1. 【理论了解】接口测试简介以及接口测试用例设计思路

    接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是 ...

  2. 软件测试接口测试用例设计

    接口测试用例设计 随着测试分析和分层测试的深化,"接口测试"出现在我们视野的频次越来越高.那么接口测的用例设计常用哪些方法呢?本文将详细描述. 接口测试 1.1  接口测试 接口: ...

  3. 全网最详细软件测试接口测试用例设计-怎么编写-模板(最详全)

    目录:导读 一.前言 1.接口测试 2.接口测试发现的典型问题 二.接口测试用例设计 1.针对输入设计 1.1.数值型 1.2.字符串型 1.3.数组或链表类型 三.针对逻辑设计 1.约束条件分析 2 ...

  4. 软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!

    软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!为什么这么说呢?是因为你们的思路有着天壤之别,来看吧: 相信不少朋友在笔试的时候都遇到过测试用例设计的笔试题.通常是一个登陆页面,上面有用户名,密 ...

  5. 软件测试之接口测试用例设计,全网独一份

    1.接口测试用例设计简介 我们对系统的需求分析完成之后,即可设计对应的接口测试用例,然后用接口测试用例进行接口测试.接口测试用例的设计也需要用到黑盒测试方法,其与功能测试用例设计的方法类似,接口测试用 ...

  6. 接口测试用例设计的一点总结

    背景 最近项目中也一直在推动接口测试,中途也遇到很多的问题:从最开始的接口文档管理,接口测试框架的选型,到后续接口测试用例的维护问题.最近在想接口测试的一个覆盖度问题.谈到覆盖度,又得回到接口测试的用 ...

  7. (转)接口测试用例设计

    随着测试分析和分层测试的深化,"接口测试"出现在我们视野的频次越来越高.那么接口测的用例设计常用哪些方法呢?本文将详细描述. 1  接口测试 1.1  接口测试 接口:主要是子模块 ...

  8. 【转】接口测试用例设计

    文章图片参考源地址: http://url.cn/5ZM37wg 随着测试分析和分层测试的深化,"接口测试"出现在我们视野的频次越来越高.那么接口测的用例设计常用哪些方法呢?本文将 ...

  9. (转)【腾讯 TMQ】 接口测试用例设计

    导语 这是我在其他的开源社区看到的一篇分享帖子.这篇文章的目的只是为大家提供一个思路,但是实现成本太高了,因为一个接口设计的接口测试用例很多,一般公司的接口数量几百到上千不等,每一个接口都设计这么多测 ...

最新文章

  1. 【 MATLAB 】【 MATLAB 】DFT的性质讨论(三)序列的循环卷积及其 MATLAB 实现
  2. kettle中的switch_Kettle学习笔记(二)— 基本操作
  3. python自学网站 知乎-如何自学Python拿到25K的薪资?非常感谢这11个站点!
  4. caffe学习(二):利用mnist数据集训练并进行手写数字识别(windows)
  5. openssl https 单向认证连接成功示例
  6. 22:00直播|当加班男程序猿 被美女主播~ 捕到后...
  7. PHP高性能输出UNICODE正则汉字列表 汉字转拼音多音字解决方案 搜索引擎分词细胞词库更新 搜狗词库提取TXT...
  8. idea 配置jdk版本_JDK 11 安装过程(同时已安装了JDK 8)以及Intellij IDEA 配置
  9. C# DateTime ToString
  10. c语言输入不定数量字符串并排序,请教多个字符串排序(不用数组)
  11. 良好的开端是成功的第一步———构建程序
  12. Python 快速入门,你想要的就在这里了!
  13. 《Tensorflow 实战》(完整版,附源码)
  14. BZOJ5074 小B的数字
  15. 【劲峰论道时空分析技术-学习笔记】4 如何度量时空变化
  16. 初探单点登录 SSO
  17. 微理财与玖富小金票接口对接项目文档
  18. html onclick点击事件失效,HTML onfocus,onclick事件不起作用
  19. echarts柱形图根据数据排序顺序要求更改颜色
  20. Video Caption Tutorial

热门文章

  1. MarsNFT :个人如何发行数字藏品?
  2. Android检查网络
  3. 基于机器学习的技术术语识别研究综述
  4. amd运行android studio,彻底解决AMD 无法运行android studio原生模拟器
  5. 2009雷人语录最全
  6. 用cygwin从本地向ubuntu某路径下传文件时Permission denied解决方法
  7. 新年寄语 —— 奋斗2022
  8. skywalking内部测试服务器安装记录
  9. object-ui之动画雪花降落实现
  10. Win7系统经常提示显示驱动程序已停止响应并且恢复的解决办法