一、 络协议http和https的区别
前者为超文本传输,通信使用明文、请求和相应不会对通信方进行确认、无法保护数据的完整性,端口 默认为80。
后者利用SSL/TLS建立安全信道,加密数据包,端口 为443。主要目的是提供对 站服务器的身份认证,同时保护交换数据的隐私与完整性。
1、一次完整的http请求过程
a.浏览器进行DNS域名解析,得到对应的IP地址;
b.根据这个IP,找到对应的服务器简历连接(三次握手);
c.建立TCP连接后发起http请求(一个完整的http请求 文);
d.服务器响应http请求,浏览器得到html代码(服务器如何响应);
e.浏览器解析html代码。并请求html代码中的资源(如js、css、图片等);
f.浏览器对页面进行渲染呈现给用户;
g.服务器关闭TCP连接(四次挥手);
2、常见的http状态及响应码
1(信息类):表示接收到请求并继续处理,例如100客户必须继续发出请求
2(响应成功):表示动作被成功接受、理解和接受,例如200请求成功,请求的资源发送回客户端;204请求收到,但返回信息为空
3(重定向类):为了完成指定的动作,必须接受进一步的处理,例如300请求的资源可在多出得到;301本 页被永久性转移到另一个URL
4(客户端错误):请求包含错误语法或不能正确执行,例如400客户端请求有语法错误,不能被服务器所理解;401请求未经授权;403禁止访问,服务器收到请求,但是拒绝提供服务;404输入错误的URL,服务器请求资源不存在
5(服务端错误):服务器不能正确执行一个正确的请求,例如500服务器遇到错误,无法完成请求;501未实现;502 关错误;503由于超载或停机维护,服务器目前无法使用
二、常用的Linux命令
find 查找文件/目录
cd 切换目录
rm 删除文件/目录
tar 解压缩文件
touch 创建文件
apt-get/yum/dnf 下载软件包命令
df 查看文件系统磁盘空间的使用情况
tail -f 滚动查看日志
top 实时显示系统中各个进程的资源占用情况
三、常用的测试方法
黑盒测试
1)边界值
边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。但该方法会有较大的冗余和漏洞。
边界值测试对布尔型无效(因为布尔型不是“true”就是“false”,不存在边界值的概念)
边界值测试并非黑盒测试独有,它也可以应用在白盒测试(比如数组边界的测试、对循环次数边界的测试……)
2)等价类
划分的子集应该满足如下因素:
(1)每个子集内部所有的数据都是等价的
(2)子集之间互不相交
(3)所有子集的并集是整个输入域或输出域
【有效等价类】是相对于规格说明合理的、正确的、有意义的输入数据构成的集合。
【无效等价类】是相对于规格说明不合理的、错误的、无意义的输入数据构成的集合。
3)场景法
软件的工作流程往往对应着现实生活的场景。应该从更高些的视角来 把握系统的业务流程,了解功能模块。
在熟悉流程的基础上才能讨论局部细节的测试设计。 场景法的核心是事件流和场景
4)错误推测法
凭借测试人员多年的测试经验,通过直觉和经验来推测系统中可能出现的各种缺陷。根据这些情况,来设计测试用例。
白盒测试
1)语句覆盖
使程序中的每个可执行语句都能执行一次的测试用例
2)判定覆盖
对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况
3)条件覆盖
设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果
4)判定条件覆盖
设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。
5)条件组合覆盖
设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次
6)路径覆盖
设计测试用例时,覆盖程序中所有可能的执行路径
优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。
缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。
四、数据库基本语句
作为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解。
1.插入表数据
2.删除表数据
3.修改表数据
4.查询表数据
5.复杂查询
嵌套查询:多个查询语句嵌套在一起查询,一般嵌套的查询语句放在where或having的后面。例如:
多表连接查询:
table1
id | username |
---|---|
1 | 小花 |
2 | 小红 |
3 | 小白 |
table2
id | job |
---|---|
1 | 老师 |
2 | 学生 |
4 | 工人 |
(1)内联查询inner join + on
查询结果为:
id | username | id | job |
---|---|---|---|
1 | 小花 | 1 | 老师 |
2 | 小红 | 2 | 学生 |
(2)左外联查询 left outer join + on
查询结果为:
id | username | id | job |
---|---|---|---|
1 | 小花 | 1 | 老师 |
2 | 小红 | 2 | 学生 |
3 | 小白 | null | null |
(3)右外联查询 right outer join + on
查询结果为:
id | username | id | job |
---|---|---|---|
1 | 小花 | 1 | 老师 |
2 | 小红 | 2 | 学生 |
null | null | 4 | 工人 |
(4)全外联查询 full outer join + on
查询结果为:
id | username | id | job |
---|---|---|---|
1 | 小花 | 1 | 老师 |
2 | 小红 | 2 | 学生 |
3 | 小白 | null | null |
null | null | 4 | 工人 |
6. group by 分组
根据某一个或多个列表字段进行分组统计,例如
table1
id | name | course | score |
---|---|---|---|
1 | 小花 | 语文 | 90 |
2 | 小红 | 语文 | 99 |
3 | 小白 | 数学 | 98 |
4 | 小白 | 语文 | 70 |
5 | 小花 | 数学 | 95 |
查询每个用户的最高成绩
查询结果:先按用户名分组,再在每个组中查询找到最高分数
id | name | max_score |
---|---|---|
1 | 小花 | 95 |
2 | 小红 | 99 |
3 | 小白 | 98 |
查询全班每科课程平均分
查询结果:先按课程分组,再在每个组中查询找到平均分数
id | course | avg_score |
---|---|---|
1 | 语文 | 99 |
2 | 数学 | 98 |
having的用法:同where用法,having与group by连用。where是筛选单个记录,having 是筛选分组(先分组,后筛选)
文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览22165 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!