python函数:
是组织好的,可重复使用的,用来实现特定功能的代码段
优点:
- 将功能封装在函数内,可供随时随地重复利用
- 提高代码的重复性,减少重复代码,提高开发效率
def 函数(参数...):
函数体
return 返回值
python数据容器:
list(列表)、tuple(元组)、str(字符串)、set(集合)、dict(字典、映射)
list(列表)
- 变量名称 = [元素1,元素2,...]
- 列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套,支持重复数据且有序
# 查找 列表.index(元素) # 修改 列表[下标] = 值 # 插入 列表.insert(下标,元素) # 追加 列表.addend(元素) # 删除 列表.pop(下标) / del 列表[下标]
tuple(元组)
1.变量名称 = (元素,元素,元素,...)
2.可以是不同的数据类型,不可以修改元组的内容,但可以修改元组内list内容,支持重复数据且有序
set(集合)
1.变量名称 = {元素,元素,元素,....}
2.去重且无序,可以修改元素(增加或删除)
dict(字典)
1.变量名称 = {key:value,key:value,key:value......}
2.Key和Value可以是任意类型的数据(key不可为字典) Key不可重复,重复会对原有数据覆盖
软件测试流程:
- 需求评审:确保各部门需求理解一致
- 计划编写:测什么、谁来测、怎么测
- 用例设计:验证项目是否符合需求的操作文档
- 用例执行:项目模块开发完成后开始执行用例文档实施测试
- 缺陷管理:最终缺陷被修复
- 测试报告:实施测试结果文档
常见用例设计方法:
- 等价类划分法:有效和无效等价类(有效和无效各取其一就可以) 页面的输入框类测试
- 边界值分析法:最多7条用例(开内闭外,5条用例) 适用于有边界范围的输入框类测试
- 判定表法:以表格形式表达多条件逻辑判断的工具
- 场景法:测项目先测业务 ,使用流程图
- 错误推荐法:当项目用例全部执行完毕,且bug修复完毕,离上线还有一段时间,在这段时间使用错误推荐法
MySQL
DDL
数据定义语言,用来定义数据库对象(数据库,表,字段)
查询所有数据库 show databases;
查询当前数据库 select database();
创建数据库 creat database 数据库名;
删除数据库 drop database 数据库名;
查询当前数据库所有表 show tables;
查看指定表结构 desc 表名;
创建表结构:
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;
DML
对数据库中表的数据记录进行增、删、改操作
添加数据(insert)
修改数据(update)
删除数据(delete)
DQL
数据查询语言,用来查询数据库中表的记录 select
基本查询(不带任何条件)
条件查询(where)
聚合函数(count、max、min、avg、sum)
分组查询(group by)
分页查询(limit)
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数
DCL
数据控制语言,用来管理数据库用户、控制数据库的访问权限
查询用户 select * from mysql.user;
创建用户 create user '用户名'@'主机名' identified by '密码';
删除用户 drop user '用户名'@'主机名';
事务
事务 是一组操作集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销请求操作,即这些操作要么同时成功,要么同时失败。
事务的四大特性(ACID)
原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation):保证事务在不受外部并发操作影响的独立环境下进行。
持久型(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。
事务的隔离级别
数据库索引
二叉树
B+Tree和B-Tree
区别:
所有的数据都会出现在叶子节点;
叶子节点形成一个单向链表;
非叶子节点仅仅起到索引数据的作用,具体的数据都是在叶子节点存放的。
Hash
哈希索引就是采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,然后存储在hash表中。
特点:只能用于对等比较,不支持范围查询;无法利用索引完成排序操作;查询效率高,通常只需要一次检索就可以了,效率通常要高于B+Tree索引
索引分类
网络安全
OSI TCP/IP
Web攻击及防御
1.XSS跨站脚本攻击:运行非法的HTML标签或JavaScript进行的一种攻击。
防御手段:CSP建立白名单,开发之明确告诉浏览器哪些外部资源可以加载和运行;转义字符;HttpOnly Cookie,Web程序在设置cookie时,将属性设置为HttpOnly。
2.CSRF跨站请求伪造攻击:
防御手段: 将cookie设置为HttpOnly、增加token、通过Referer识别。
3.SQL注入攻击:就是把SQL命令伪装成正常的http请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。
防御手段:使用预编译语句、使用ORM框架。
4.DDoS分布式服务攻击:借助公共网络,将数量庞大的计算器设备联合起来,对一个或多个目标发动攻击,从而达到瘫痪目标主机的目的
防御手段:增加带宽