软件开发的两种结构
1.CS(Client/Server):客户端----服务器结构
2.BS(Browser/Server):浏览器----服务器结构
BS与CS优缺点对比
CS响应速度快,安全性强,用户体验好,一般应用于局域网中,但是开发维护成本高;BS可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。所以有些单位日常办公应用BS,在实际生产中使用CS结构。
开发: cs比bs要高,因为cs开发双端
运行: cs比bs要快
安装:cs需要安装客户端才能使用,bs不需要,只要游览器即可
更新:cs需要更新双端,bs只需要更新服务器端,游览器刷新即可
兼容:cs需要考虑手机型号,版本,屏幕的分辨率(720*1280 1080*1920) bs不用考虑游览器,游览器的版本(谷歌,火狐,IE)
安全:c/s相对安全
界面美观:c/s界面美观
cs中有专项测试,bs没有,专项测试有:安装,卸载,中断,弱网,monkey稳定性测试
自动化测试中bs使用是selenium,cs使用是appium
http协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)
是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务器端是网站。
我们在浏览器的地址栏里输入的网站地址叫做URL (Uniform Resource Locator,统一资源定位符)
http/https区别:
端口号:http 80
https 443
安全:
http是明文传输,不加密
https是密文传输, https =http+ssl ssl是加密,所以https是加密的 抓包工具
http之URL包括
1.协议部分 2.域名部分 3.端口部分 4.虚拟目录部分 5.文件名部分 6.锚部分
7.参数部分
HTTP1.0和HTTP1.1的区别
HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟
http1.1中增加了Host请求头字段和connection请求头字段
接口请求,请求方式:
get/post/put/delete
get/post的区别
get是用于获取数据,post用于提交数据
get请求参数放在url中,post请求参数放在请求体中,post相对get安全
由于url是有长短限制的,所以get请求参数是有限制。post默认没有限制
接口中包含什么
请求request:
请求行:信息(请求方式,url,http版本号)
请求头:host/ connect/ Referer/accept-encoding/accept-language/ cookie
地址 连接状态 源文件 数据压缩类型 浏览器接受语言 cookie信息
请求参数
响应response:
响应行:http版本号 状态码 ok
响应头:content-type/connect/Content-Language/Content-Encoding/
数据类型 连接状态 服务器支持语言 数据压缩类型
响应的信息:
状态码:
类别 原因短语
1XX Informational(信息性状态码) 接受的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错
200 OK //客户端请求成功
301Moved Permanently //永久移动。请求的资源已被永久的移动到新URI
302Found //临时移动。与301类似。但资源只是临时被移动
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
Cookie
Cookie的核心功能就是储存一些数据,浏览器在每次请求服务器的时候,都会带上cookie所有数据,我们的服务器可以接受这些数据,并且在返回请求的时候,告诉浏览器增加修改或者删除某些cookie的数据
Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
Session
Session就是基于某些服务器和客户端都储存的一个唯一值关联起来的。cookie只是实现方式的一种,cookie中储存一个唯一ID,服务器储存这个唯一ID关联的数据。这就是session。
Session和Cookie的主要区别在于:
Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中
cookie与session的联系:
当服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是session的sessionId。。这样才能保证客户端发起请求后客户端已经登录的用户能够与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session,同时也能够确保不同页面之间传值时的正确匹配。
接口测试
API接口是Application Programming Interface的简称,是一些预先定义的函数,包括接口地址、传入参数和返回参数。
接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。
接口分类
http接口 请求参数 key-values json
webservice接口 请求参数 xml格式
请求协议
http --- 普通的http请求
https --- 加密的http请求,传输数据更加安全
请求IP:就是指提供接口的系统所部署的服务器地址
请求端口:如果不填端口,默认是80,否则需要填写端口号
接口路径:指系统提供的接口在什么位置
接口参数:参数在接口路径后,用“?”来表示路径地址完了,剩下的都是参数了,用“&”来区分参数个数
接口测试的必要性:
①、可以发现很多在页面上操作发现不了的bug
②、检查系统的异常处理能力
③、检查系统的安全性、稳定性
④、前端随便变,接口测好了,后端不用变
接口测试用例编写
用例编号,接口功能,标题,请求方式,请求路径,请求头,请求体,预期结果,实际结果,是否通过
做接口测试,需要开发提供接口文档
接口文档
1. 被测接口的地址
2. 接口参数,以及各个参数的说明
3. 必要的http头与http体 ( http头是可以自定义的,可以用来校验是否是自己人访问 )
4. 接口返回什么值,以及各个返回值的说明
5. 接口是干什么的