这是我第一次开始正式的了解自动化,之前只是听说,并没有真正的了解过,以下是第一天学习的内容。
1、什么是接口
之前接触的接口,一直是程序部的,接触到的数据类的接口比较多,比如从GP库把数据传送到ORACLE库中,判断传输的数据对不对,这种就是属于程序内部的接口测试。
还有一种是外部的接口测试,比如 腾讯QQ,要调用天气,这个就是属于外部接口
2、GET和POST请求
get和post 区别
1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 如果是get请求的话,不需要用工具,传参数的话,需要在url后面加上问好,?xxx=xxx&xx=xxx,多个参数的话,就用&来连接
post请求需要用到工具操作,常用工具为 Postman
3、PostMan测试接口工具
特点:
创建 + 测试:创建和发送任何的HTTP请求,请求可以保存到历史中再次执行
Organize:使用Postman Collections为更有效的测试及集成工作流管理和组织APIs
document:依据你创建的Clollections自动生成API文档,并将其发布成规范的格式
postman界面分为两部分:左边的sidebar 右边的request builder:快速创建几乎所有的请求
001
- HTTP请求的4部分:URL,请求的method,headers,body。
-
URL
首先需要设置的就是URL
注意:如果在输入参数时,没有自动decode到URL中,则可以选中参数右键后,选择EncodeURIComponent(一般都会自动填充的):
同样也可以decode,将参数生成dictionary的形式(一般都会自动填充的):
有的URL中有path变量,postman可以自动提取该path变量为一个key
点击headers toggle:
输入key-value时,会有自动提示的下拉面板:
有些headers和cookies是保密的,如:
1.Accept-Charset
2.Accept-Encoding
3.Access-Control-Request-Headers
4.Access-Control-Request-Method
5.Connection
6.Content-Length
7.Cookie
8.Cookie 2
9.Content-Transfer-Encoding
10.Date
11.Expect
12.Host
13.Keep-Alive
14.Origin
15.Referer
16.TE
17.Trailer
18.Transfer-Encoding
19.Upgrade
20.User-Agent
21.Via
-
Method
-
Request body
-
不同的body editor 分为4个区域,根据body类型有不同的控制。
-
mutipart/form-data是网页表单用来传输数据的默认格式。可以模拟填写表单,并且提交表单。
可以上传一个文件作为key的value提交(如上传文件)。但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。
-
2 urlencoded
同前面一样,注意,你不能上传文件通过这个编码模式。
该模式和表单模式会容易混淆。urlencoded中的key-value会写入URL,form-data模式的key-value不明显写入URL,而是直接提交。
-
3 raw
raw request可以包含任何东西。所有填写的text都会随着请求发送。
-
4 binary
image, audio or video files.text files 。 也不能保存历史,每次选择文件,提交。
4、自动化测试案例
包括:通过性验证、参数组合、接口安全、异常验证、根据业务逻辑设计测试用例等
5、JMeter测试工具
Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便。它也是跨平台的在linux、windows、macos上都可以使用。
postman 能做的,jmeter都可以做