3、图形测试

是Web系统显示信息中最为常见的一种手段,图形测试也可以理解为UI测试,如图片、动画、颜色、背景、字体、按钮等通常可以从以下几点关注:

1)检查图形的标准规范(Web界面的图形要符号现行业的标准和规范)

2)检查用户的视觉角度(界面是否干净、布局是否合理、是否有多于的功能)

3)检查图形的风格(按钮、菜单选项以及术语等,设计是否一致)

4)检查图形的灵活性(图片、按钮等设计是否适应窗口大小的变化)

4、整体界面

Web系统主要的使用者是用户,因为大多数用户都是目的驱动,所以针对Web系统的整体界面要考虑对用户的指引导航以及帮助信息,还需要考虑用户浏览时的舒适度以及整体的风格。通常测试整体界面时,最后由最终的用户参与。

8.2.2 Web性能测试

Web系统的性能测试涉及的面很广,种类也很多、如并发测试、压力测试、负载测试、稳定性测试、配置测试、网络测试以及大数据量测试等。

Web性能测试,针对服务器而言主要关注处理事物的响应时间、系统的吞吐量、系统的点击率、系统的访问量以及服务器资源等。

1、单业务的性能测试

指Web系统的核心业务和用户使用频繁的业务,这是Web系统性能测试的重点针对单业务需要进行:

1)单业务的并发测试,主要来获取用户的响应时间,检查程序或数据库问题

2)单业务的压力测试,主要来获取最大并发数,找到系统中的性能瓶颈在哪里。

3)单业务的负载测试,主要来获取TPS指示,检查服务器的处理能力。

2、组合业务的性能测试

在Web系统中组合业务是最接近用户实际使用情况的测试,也是性能测试的核心。针对组合业务需要进行:

1)组合业务的并发测试,主要用来检查程序对多业务的性能问题和数据库锁的处理方式。

2)组合业务的负载测试,主要来获取最佳负载数,检查服务器的处理能力。

3)组合业务的压力测试,主要来获取服务器的最大负载数,检查服务器的稳定性,此时服务器的处理能力已经不重要了。

3、大数据量的性能测试

主要是针对一些数据的存储、传输、统计、查询等业务进行大量数据的性能测试。大数据量的来源主要由两种,一种是运行时引入的大数据量、另一种则是历史数据引起的大数据量,比如大数据量的查询测试、需要在数据库表中存有上百万甚至上千万的数据,此时主要通过获取查询的响应时间来检查数据库中对索引的使用是否合理。

4、第三方接口的性能测试

常见的Web端中的第三方接口,比如登陆时无需注册,可以通过QQ、微信、微博等账户直接登陆;还有就是在Web系统中涉及的支付和实名认证等。针对第三方接口需要进行

1)接口的并发测试,主要检测第三方接口支持的最大并发数

2)接口的负载测试,主要检测第三方接口支持的最大负载数

5、Web前端性能

主要就是减少HTTP的请求和资源的数量,合理设置浏览器的缓存机制;对测试资源进行压缩,以便节省网络宽带资源;同时尽快减少Cookies的传输,因为HTTP协议是无状态的应用层协议,每次请求都需要建立通信进行数据传输,在服务端会对每个HTTP请求启动独立线程来处理,并且每次发送请求都会进行DNS解析,所以减少请求的数目可以有效提供访问性能。减少HTTP请求的手段就是一次将需要访问的CSS、JavaScript以及图片合并成一个文件,此时浏览器指需要请求一次即可;同时合理设置浏览器缓存也可以减少HTTP请求,如果传输过程资源文件太多,需要采取压缩的方式传递数据。

介绍一下前端性能优化时,如何恰当使用Cookie和Session

(1)Cookie

是由Web服务器保存在客户端浏览器上的一个小文本文件,它包含用户的一些相关信息。用来判断用户是否访问过网站,是否为合法用户以及记录用户访问过的一些数据信息,以便在以下一次访问时直接获取。Cookie的保存机制有两种:一种是保存到硬盘中,此时会指定一个生命周期,超过周期Cookie会被清除;还有就是保存到内存中,通常关闭浏览器Cookie自动清除。通常一个浏览器场景的Cookie数量最多为300个,并且每个不超过4KB,每个Web站点设置的Cookie总数不超过20个。

(2)Session

可以理解为会话,通常存储在服务器端,当用户访问Web系统时,服务器将在服务端为该用户生成一个Session,并且将相关数据记录咋内存中;同时服务端生成一个Session ID(用来唯一标识Session输入,默认保存时间为30min)通过响应发送给浏览器,浏览器将Session保存到Cookie中。

(3)Cookie与Session的区别

Cookie在客户端而Session是存储在服务器端,相对Session而言,Cookie的安全性不高,很容易被窃取或篡改,考虑安全性应该使用Session,涉及隐私的信息存放Session,但是Session会在服务器端保存一段时间,当访问过多会影响服务器的性能,考虑到减轻服务器性能时,应当使用Cookie.

8.2.3   Web安全测试

对Web服务器的攻击可以说是形形色色、种类繁多、常见的有SQL注入、跨站脚本攻击、跨站请求伪造、缓存区溢出等。

1、SQL注入

是最常见的一种手段,主要是指攻击者巧妙的构建非法的SQL查询命令,插入表单或请求字符串中后提交,根据返回的结果来获得想要的数据,这就是所谓的SQL lnjection 即SQL注入

SQL注入的方法一般都猜测法和屏蔽法。猜测法主要是通过猜测数据库可能存在的表名和列名,根据组合的SQL语句获取数据表的信息。屏蔽法主要是利用SQL输入不严谨进行逻辑验证,从而使得SQL验证始终为真,从而绕开验证的目的。

(1)猜测法

在Web安全测试中,经常会对URL请求进行猜测

如上述URL请求可以在URL地址嵌入如下②或③

 如果②显示结果和①基本相同,③显示内容为空或者提示找不到记录,则表示可以注入。

接下来可以在地址嵌入④如下SQL攻击语句,看是否可以列出所有的数据信息

注意写法:应将Userid=59-写成Userid=59'or'1'='1,这样单引号刚好闭合
如果需要猜对应的表名,还可以写成⑤如下:

如果不存在该表,则可能会报错,说明User表无效,并告知是那种数据库类型,然后在根据不同的数据库类型,使用对应的系统表名进行查询攻击。

如果表名猜出来以后还可以继续猜字段,如下

 如表名和字段猜对后,还可以使用ASCII逐字解码法,来猜测字段的长度,如

 注意的是英文和数字ASCII码在1~128之间,通常采用折半法加速猜测。

(2)屏蔽法

经常会利用SQL语句运算符AND和OR运算规则(AND运算规则高于OR)来进行攻击,以便绕过验证,比如管理员的秘密都是admin,通常登陆SQL的验证语句如下:

select8from user where username=''or'1'='1'and passwd="or'1'='1';一共4个查询语句,即”假OR 真AND 假OR真“,由于AND的运算规则高于OR,所以先执行AND,在执行OR,结果为假OR假OR真“,整个SQL语句最终结果为真,这样可以成功绕过验证直接登陆系统。

2、跨站脚本攻击

跨站脚本请求伪造CSRF(Cross-site request forgery)是一种对网站恶意利用,它通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不太流行和难以防范,所以被认为比XSS更具危险性。

简单判断存在CSRF漏洞的方法就是通过抓取正常请求的数据包,然后通过去掉Referer字段后重新提交,如果该提交还有效说明存在CSRF漏洞。防止CSRF的最常见的方法就是在AJAX异步请求地址中添加Token并进行验证。

4、缓存区溢出

是一种非常普遍存在的漏洞,在各种操作系统、应用软件中其广泛存在。利用缓冲区溢出发出攻击,可以导致程序运行失败、系统关机、重新启动、或者执行攻击者的指令,比如非法提升权限等。在缓冲区溢出中,最危险的就是堆栈溢出,它可以利用堆栈溢出,在函数返回时将程序的地地址修改为攻击者需要的任意地址,达到攻击者的目的。

造成缓冲区溢出的主要原因是对输入、输出的数据没有限制大小,长度、以及格式等,还有就是对用户的特殊操作没有做异常处理导致。所以在测试过程中需要注意输入输出的大小长度以及格式规范限制,还有需要多模拟一些异常,关注异常的处理情况。

对Web应用软件来说,安全性包含Web服务器、数据库、操作系统以及网络的安全等,只有其中任意一个部分出现安全漏洞,都会导致整个系统的安全性问题。在实际测试中,测试人员只要是针对用户的权限以及数据库的安全性测试,还可以借助IBM的安全漏洞扫描工具APPScan来进行
漏洞扫描。

8.2.4   Web兼容测试
其目的就是保证软件的质量,提高用户体验。通常体现在客户端的兼容性主要是针对不同的浏览器、操作系统以及分辨率进行的测试。
1、浏览器兼容性
针对Web系统,目前主浏览器的内核有IE、Firefox、Chrome、edge。大多数用户使用的浏览器基本都是IE内核,如百度、QQ、360、搜狗、猎豹等。同时一些Web系统还要考虑收集浏览器的兼容性,比如Safari浏览器。在实际测试工作中,大多数都是手工测试,工作量大覆盖考虑也不会太全面,建议在测试前,先创建一个兼容性矩阵,来测试不同厂商、不同版本的浏览器,也可以借助测试工具进行测试。
2、操作系统兼容性
目前主流的操作系统由Windows、Unix、Linux以及Mac等操作系统。测试人员需要针对软件使用的主流操作系统进行兼容性测试,目前大多用户以win7、win10以及Mac、Android系统。
3、分辨率兼容性
不同的分辨率可能会导致Web页面变形,严重时会导致功能无法使用。因此需要测试在不同分辨率下的表现。常见的PC端分辨率有17英寸的1024*76819英寸的1280*1024、22寸的1920*1080等。除了考虑PC端,还需要考虑笔记本和手机上进行测试。
8.2.5  Web接口测试
1、接口分类
Web系统从调用方式不同,接口大致分为以下三种:
(1)系统与系统之间的接口
系统间接口即可以是公司内部不同系统间调用的接口,也可以是不同公司不同系统间的接口。例如第三方登陆接口就是不同公司不同系统的接口。
(2)下层服务对上层服务的接口
一般的系统分为三层:应用层、服务层、数据库层
应用层就是UI功能层:比如Web浏览器或者APP
服务层是 服务器所提供的数据处理功能,一般由后台服务器完成。
数据库层是用来存储用户数据,一般由独立的数据库系统,比如OracleMysql等。
各层之间的交互提供接口完成,应用层和服务层主要通过HTTP接口。服务层与数据库主要通过DAO(Data Access Object)数据库访问接口完成交互。
(3)系统内部、服务与服务之间调用接口。
服务之间的接口大多情况时程序之间的调用,在系统内部完成。
3、接口用例
做好Web端接口测试的关键就是接口文档,一般接口文档包括:接口的说明调用的URL、请求发送(GET或POST)、请求参数、参数类型、请求参数的说明以及返回结果等。测试人员根据接口文档设计接口测试用例,然后通过测试工具来完成接口测试。
一般接口的用例设计需要考虑以下几点:
(1)功能测试
根据接口文档中的参数,输入正常参数验证接口返回是否正确;其次就是对接口参数的组合测试,要考虑参数是否必填、参数的类型和长度以及参数的约束限制等;最后在设计用例时要仅可能地保证所有的组合情况都被覆盖到。
(2)安全测试
首先测试以后的权限,关注是否可以绕过授权;其次考虑敏感参数的加密规则是否容易破解,最后考虑SQL注入、XSS攻击等。
(3)性能测试
不管是程序接口还是第三方接口,都需要关注接口的性能,接口的性能需要考虑并发测试、负载、压力、可靠性测试等。
3、接口用例模板 见表8-1

第八章 Web项目测试(此章完结)相关推荐

  1. 软件测试 (7) web项目测试

    前言 之前说了APP项目的测试,今天来总结一下web项目的测试,其实大多数过程是差不多类似的.对比平常移动端手机的高频率使用来说,对于部分人使用pc端浏览器的概率就不会这么高,讲APP项目测试的时候没 ...

  2. 使用Maven构建Web项目-测试

    1.在src/main/java下,新建一个Servlet [java] view plaincopy package com.deppon.text01.action; import java.io ...

  3. java web项目测试_java web项目怎么测试?

    慕仰1329654 java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等.main()方法就可以测试,在main方法中获得connection对象将他输出就可以了.如果正 ...

  4. 菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty

    做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器--jetty.今天说的etty是Maven的一个插件jetty-maven-pl ...

  5. 【Web项目测试访问遇到404错误的相关解决办法】

    在使用tomcat进行JAVA项目开发时,时常遇到如下图所示的404错误: 显示的错误信息为: "The origin server did not find a current repre ...

  6. Jmeter加Fiddler对web项目测试

    一.F12获取请求信息 获取关键字,再使用Jmeter测试的时候会用到. 二.如果F12抓取不完善,使用Fiddler抓取 输入: bup  https://passport.cnblogs.com/ ...

  7. Web安全测试工具介绍

    如今,Web 技术繁荣发展的同时,也带来了前所未有的安全挑战.有数据统计,所有黑客入侵事件中,85% 以上都是针对 Web 应用漏洞发起的攻击. Web安全测试工具介绍 nikto 向目标发送探测数据 ...

  8. Kali Linux Web 渗透测试秘籍 第三章 爬虫和蜘蛛

    第三章 爬虫和蜘蛛 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 渗透测试可以通过多种途径完成,例如黑盒.灰盒和白盒.黑盒测试在测试 ...

  9. spring boot web项目_SpringBoot2.x入门到项目实战课程系列(第四章)

    项目源码:https://github.com/wenMN1994/SpringBoot 第4章 Spring Boot 日志配置 在市场上存在非常多的日志框架: Spring Boot 采用了 sl ...

最新文章

  1. POJ 1691 Painting A Board
  2. iOS 手机App消息推送功能(后台Java实现)
  3. windows下,linux下c++生成文件夹
  4. 几道题帮你搞定数据选择器
  5. Qt文档阅读笔记-Multicast Receiver Example与Multicast Sender Example解析
  6. 抗击肺炎,中国互联网公司在行动
  7. java文件不能转class_安了jdk 却不能将.java文件转换成.class 文件,一运行就说‘javac’不是内部或外部指令,却能运行.class文...
  8. 浅谈社区电子商务的发展及其技术应用
  9. MapInfo MapXtreme 2005 WebGIS 简单鹰眼设计(转)
  10. 如何将android连接到pc,如何将Android屏幕镜像到PC
  11. Error: EBUSY: resource busy or locked, lstat ‘D:\DumpStack.log.---基于Vue的uniapp手机端_前端UI_uview工作笔记004
  12. Cisco网络管理的35个常见问题及解答
  13. 全国计算机三级嵌入式资料
  14. 质因数分解的一些讨论(Pollard-Rho算法)
  15. 【MySQL】MySQL中如何对数据进行排序
  16. python nginx部署_nginx部署python应用
  17. jQuery源码解析(架构与依赖模块)
  18. 计算机登录界面没有用户显示不出来,win10不出现登录界面怎么办
  19. 全民K歌“火热”/腾讯“对抗”字节跳动,谁将主导车载娱乐应用?
  20. 1什么时IEnumerable?

热门文章

  1. 跳出网络的诱惑,我们该怎么行动?
  2. 全息裸眼3D主题餐厅沉浸式互动投影无人未来点餐系统
  3. 每日一问-ChapGPT-20230101-关于新年的规划
  4. 攻防大牛在身边,这群白帽极客的故事太精彩!
  5. Firefox(火狐)主页被hao123绑架的解决办法
  6. 东京迪斯尼海洋 Tokyo Disneysea 攻略
  7. ROG枪神6Plus超竞版价格是多少 ROG枪神6Plus超竞版配置如何
  8. 计算机网络知识点总结-第一章:概述
  9. 12306购票抓包分析以及任务分解
  10. 在win10运行三国志11,真三国无双4等老游戏