相信很多人都听说过shell,但是可能都不知道shell是什么意思。在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。下面和小编一起来学习shell的基础知识。
一 :接口的含义
1、接口也叫API(Application Programming Interface,应用程序编程接口)
2、是一组定义、程序及协议的集合
3、它提供访问一组例程的能力,无需访问源码或理解内部工作机制的细节。
二:接口的分类
第一种是代码内部的接口或称程序接口
是程序模块间的接口,代码A与代码B在组合的时候,必然需要定义一些名称以及参数、类型。
对于程序接口测试,一般需要使用与开发程序接口相同的编程语言,通过对类、方法和函数的调用,验证其返回结果是否正确来进行测试。
这种测试一般划分在灰盒测试中,也算是集成测试阶段,既可以由开发人员自己完成,也可以由有良好编程能力的测试人员来做。
第二种接口是协议接口
是系统与系统之间,通过网络数据的传递进行交互,这种类型的接口对底层代码做了封装,系统通过不同的协议提供接口对外提供调用。
此类测试一般不涉及底层程序,也看不到代码,属于黑盒层面,可以通过各种手段将网络数据发送到接口从而得到接口的响应信息,达到测试的目标。
这一类测试工作多数情况下由测试人员完成。通常所说的的接口测试主要是对协议接口的测试。
三:接口测试
1 、接口测试的含义
a、接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
b、测试的重点是要检查数据的交换,传递和控制管理过程以及系统间的相互逻辑依赖关系等。
2、接口测试的意义
2.1、为什么测试接口
接口其实就是前端页面或APP等调用与后端做交互用的,但是功能测试都测了,为什么还要测接口呢?
如测试用户注册功能,规定用户名为6~18个字符,包含字母(区分大小写)、数字、下划线。
功能测试
a、对用户名规则进行测试,比如输入20个字符、输入特殊字符等
b、但这些可能只是在前端做了校验,后端可能没做校验,如果用户名和密码未在后端做校验,而有人又绕过前端校验的话,那用户名和密码不就可以随便输了吗?如果是登录可能会通过SQL注入等手段来随意登录,甚至可以获取管理员权限,那这样不是很恐怖?
2.2、接口测试的意义
更早地发现问题
测试工作应该更早地介入到项目开发中,因为越早发现bug,修复的成本越低。
功能测试必须要等到系统提供可测试的界面后才能进行。
单元测试和接口测试是更早介入测试的两个方面。
接口测试可以在功能界面未开发出来之前对系统的接口进行测试,从而可以更早地发现问题并以更低的成本修复问题。
在一些实际项目开发过程中,开发人员并没有充足的时间去编写单元测试,并且他们往往对自己编写的代码有足够的信心,不愿意将时间“浪费”在单元测试的编写上。这个时候接口测试就会变得更加重要。
缩短产品研发周期
接口测试的介入可以更早地发现并解决bug,使得留到功能测试阶段被修复的bug减少,从而缩短整个项目的上线时间。
发现更底层的问题
系统中的有些bug如果想通过UI层功能测试会比较困难,或者构造测试条件非常复杂。通过接口测试可以更简单更全面地覆盖到底层的代码逻辑,从而可以发现一些隐藏的bug。
通常把UI层的验证称为弱验证,这是因为它很容易被绕过。如果只针对UI层的功能进行测试,就很难发现后端系统对一些异常情况的处理能力,而接口测试可以很容易地验证这些异常情况。
前端随便变,接口测好了,后端不用变
前端与后端的分离,是近年来Web应用开发的一个发展趋势。
这种模式的优势
前端的专业性越来越高,通过调用Web接口获取数据,从而专注于数据展示和页面交互的设计。
后端不必精通前端技术(HTML5/JavaScript/CSS),只专注于数据的处理并提供Web接口即可。
a、 由后端开发的接口既可以提供给Web页面调用,也可以提供给移动APP调用;
b、既可以提供给公司内部系统调用,也可以提供给公司外部系统调用。
检查系统的安全性、稳定性
3、接口测试的原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端再接收应答的一个过程。
四: 接口的组成
1、接口文档的内容
a、 接口说明
b、 调用url
c 、请求方法(get/post)
d 、请求参数、参数类型、请求参数说明、请求头header
e、返回参数说明、请求响应的代码、响应内容
2、 http请求方法与请求参数
参数是客户端向服务器发送的数据,有的可见,有的不可见。
GET请求
发送指定参数的请求来取得服务器上的某一资源
提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如 EditPosts.aspx?name=test1&id=123456
get请求数据不会出现在body中
POST请求
向指定资源提交数据,数据被包含在请求体中(提交的数据放在HTTP包的Body中)
不在url中出现
GET请求和POST请求的区别
GET使用URL或Cookie传参,而POST将数据放在BODY中。
GET的URL会有长度上的限制,而POST的数据则可以非常大。
不同浏览器要求不同,如IE6要求最大256
POST比GET安全。
get请求能够被缓存,请求会保存在浏览器的浏览(历史)记录中,请求的数据会显示在地址栏中,不安全,请求的url能够保存为浏览器书签(收藏夹)
post请求不能被缓存,请求不会保存在浏览器浏览记录中;请求的数据不会显示的地址栏中,相对安全;请求的url无法保存为浏览器书签
一般get请求用来获取数据,post请求用来发送数据。
get请求数据只支持ASCII类型,post请求数据类型没有限制,支持二进制数据。
今天关于“shell的基础知识”就学到这里,大家喜欢的话记得每天来这里和小编一起学习涨薪技能,下期精彩内容敬请期待。