数据报表测试(之后管报表查询为例),安全测试(之后管登陆为例)前端
一、安全测试案例设计 数据库
归纳了8个方面,这些都是要重点考虑的:
1. 正确的用户名和密码,包括是合法的字符和合法长度
2. 错误的用户名,包括用户名含有非法字符、长度过长、长度太短
3. 正确的用户名和错误的密码,包括非法字符、长度过长或太短
4. 用户名和密码都为空
5. 正确的用户名,密码为空
6. 任意的用户名和密码,包括正确的或错误的,也能够为空
7. 检查UI友好性
检查登陆界面设计是否合理,符合UI规范标准
界面符合习惯、美观,按钮对齐,输入框对齐,无错别字,字体大小协调,文字描述准确
8. 检查安全性(SQL注入等)后端
另外一个详细案例以下:api
功能性用例设计点:浏览器
1. 输入已注册的用户名和正确的密码,验证是否成功登陆安全
2. 输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确服务器
3. 输入未注册的用户名和任意密码,验证是否登陆失败,且提示信息正确网络
4. 使用未激活帐户登陆,验证是否登陆失败session
5. 使用被停用用户登陆,验证是否登陆失败并发
6. 用户名和密码二者都为空,验证是否登陆失败,且提示信息正确
7. 用户名和密码二者之一为空,验证是否登陆失败,而且提示信息正确
8. 若是登陆功能启用了验证码功能,在用户名和密码正确的状况下,输入正确的验证码,验证是否登陆成功
9. 若是登陆功能启用了验证码功能,在用户名和密码正确的状况下,输入错误的验证码,验证是否登陆失败,且提示信息正确
10.用户名和密码是否大小写敏感
11.页面上的密码框是否加密显示、或者是否须要有明暗码切换按钮
12.后台系统建立的用户第一次登陆成功时,是否提示修改密码
13.忘记用户名和忘记密码的功能是否可用
14.前端页面是否根据设计需求限制用户名和密码长度
15.若是登陆功能须要验证码,点击验证码图片或者点击换一张是否能够更换验证码,更换后的验证码是否可用
16.刷新页面是否会刷新验证码
17.若是验证码有时效性,须要分别时效性内和时效性外验证码的有效性
18.用户登陆成功可是会话超时后,继续操做是否会重定向到用户登陆界面
19.不一样级别的用户,好比管理员和普通用户,登陆系统后权限是否正确
20.页面默认焦点是否认位在用户输入框中
21.快捷键Tab和Enter等,是否能够正常使用
22.为空和输入空格字符串的校验是否一致
23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致
24.成功登陆后的session的时效设置
25.输入栏是否设置快速删除按钮
26.用户名和密码是否支持特殊字符和中文
27.浏览器的前进后退按钮,是否有效
28.成功登出后,点击浏览器回退按钮,是否能够继续操做系统
29.需求中是否有登陆时间限制,若是有验证时间限制是否有效
30.验证不一样登陆方式的正确性:扫码、帐号密码、第三方……
31.若支持手机号+验证码登陆,验证码是否有时间限制,移动设备是否能够直接获取验证码
32.操做错误提示信息是否简单明了
兼容性测试用例设计点:
1. 不一样浏览器下,验证登陆页面的显示以及功能正确性
2. 相同浏览器的不一样版本下验证登陆页面的显示以及功能正确性
3. 不一样移动设备终端的不一样浏览器下,验证登陆页面显示以及功能的正确性
4. 不一样分辨率的界面下,验证登陆页面的显示以及功能正确性
安全性测试用例设计点:
1. 用户密码后台存储是否加密
2. 用户密码在网络传输过程当中是否加密
3. 密码是否具备有效期,密码有效期到期后,是否提示须要修改密码
4. 不登陆的状况下,在浏览器中直接输入登陆后的URL地址,验证是否会从新定向到用户登陆界面
5. 密码输入框是否不支持复制粘贴
6. 密码输入框内输入的密码是否均可以在页面源码模式下被查看
7. 用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面
8. 用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改
9. 连续屡次登陆失败的状况下,系统是否会阻止后续的尝试以应对暴力破1解
10.同一用户在同一终端的多种浏览器上登陆,验证登陆功能的互斥性是否符合设计预期
11.同一用户前后在多台终端的浏览器上登陆,验证登陆是否具备互斥性
12.是否能够记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码
13.是否支持第三方登陆
14.密码的强弱性,复杂度校验
15.异地登陆校验、更换设备登陆校验、登录信息异常是否考虑帐户冻结停用、是否容许第三方平台存储密码
16.是否可使用登陆的api发送登陆请求,并绕开验证码校验
17.是否能够用抓包工具抓到的请求包直接登陆
18.截取到的token等信息,是否能够在其余终端上直接使用,绕开登陆,token过时时间校验
19.登陆错误后的提示是否存在安全隐患
性能压力测试的用例设计点:
1. 单用户登陆的响应时间是否小于3秒
2. 单用户登陆时,后台请求数量是否过多
3. 高并发场景下用户登陆的响应时间是否小于5秒
4. 高并发场景下服务端的监控指标是否符合预期
5. 高集合点并发场景下,是否存在资源死锁和不合理资源等待
6. 长时间大量用户连续登陆和登出,服务器是否存在内存泄露
7. 输入内容校验是否加入了函数防抖
最后要说明的一点是,要根据不一样的系统的实际状况进行分析,最后根据本身的需求借鉴设计点,并不是全部系统都能涉及到全部的设计点,这里的设计点只是一个针对大多数登陆可能会涉及到的用例设计点,仅供参考借鉴
---------------------
做者:Dawson_cai
来源:CSDN
原文:https://blog.csdn.net/sinat_41392571/article/details/80885242
版权声明:本文为博主原创文章,转载请附上博文连接!
二、数据报表测试,SQL以下:
在下拉框中选择小时,并在开始和结束时间选择框中选择好时间,点击查询,查看PA18数据库,
SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 进线量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼损量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='ydkh'; --科技视频报表查询
select length(to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')) from dual
--1.ceil函数的返回值是等于其参数n的一个整数或者说是大于参数n的最小整数
--2.该函数以任何数字数据类型或任何能够隐式转换为数字数据类型的非数字数据类型做为参数。函数返回与参数的数字数据类型相同的数据类型。
--3.具体的使用方法例子以下:
select ceil(-15.8) from dual--- 等于-15
select ceil(15.8) from dual---等于16
select length(info.createdate) a from t_Accepted_Cert_Info info
select length(to_char('2019-01-24 10:00:00')) from t_Accepted_Cert_Info info --19位
select substr(to_char('2019-01-24 10:00:00'),0,13) from t_Accepted_Cert_Info info--与下面一条语句同样
select substr(to_char('2019-01-24 10:00:00'),1,13) from t_Accepted_Cert_Info info
select length(substr(to_char('2019-01-24 10:00:00'),0,13)) from t_Accepted_Cert_Info info
--to_number(end_time-begin_time)
select to_number(to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss')) from dual
--to_date()函数返回的是天数,如下SQL能够执行测试出结果:
select to_date('2019-02-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') from dual
select to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') from dual
select to_number('12345.678') from dual;
SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 进线量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼损量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='ths';---同花顺--anychat报表类型可选小时
SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 进线量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼损量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='h5DV';---h5视频报表类型可选小时
select * from t_Accepted_Cert_Info info WHERE length(createdate)>=19 AND TO_DATE(info.createdate,'yyyy-mm-dd hh24:mi:ss') BETWEEN add_months(sysdate,-3) AND SYSDATE ORDER BY createdate----查近三个月的数据
因为createdate非必填,存在空或长度不够的状况,故增长length(createdate)>=19判断
--如下SQL是查近2天的数据(先后7天,先后30天均可以这样写,语法同样)
select * from t_Accepted_Cert_Info info where length(info.createdate)>=19 and info.createdate>=to_char(sysdate-2,'yyyy-mm-dd')----createdate在表中已是varchar型
select * from t_Accepted_Cert_Info info where length(info.createdate)>=19 and to_char(info.createdate) between to_char(sysdate-2,'yyyy-mm-dd') and to_char(sysdate)