测试技能树
2022-08-31 16:38:37 6 举报
AI智能生成
软件测试一份思维导图就够了
作者其他创作
大纲/内容
print(\"hello python\")
字母(区分大小写)下划线数字
字母或者下划线开头
单下划线_hello表示不能直接访问类属性,其无法通过 from...import* 的方式导入
双下划线__hello表示类私有成员
双下划线开头结尾__init__,专用标识符
命名规则
包名:小写字母及英文句号:com.python.hello
模块名:小写字母及下划线分割多个字母:module_name
类名:首字母大写:ClassName
函数名、变量名:小写字母及下划线分割多个字母:function_name
常量:大写字母:COUNT
命名规范(建议这么做)
标识符
关键字
#开头
'''code'''
\"\"\"code\"\"\"
注释
基础
算术运算符
比较运算符
赋值运算符
逻辑运算符
成员运算符
身份运算符:身份运算符用于比较两个对象的存储单元
位运算符
运算符
x = input(\"请输入:\")
输入
str()函数返回一个用户易读的表达形式
repr()产生一个解释器易读的表达形式
print()
str.format()格式化输出
logging模块
loguru框架
日志
输出
输入输出
一般形式
嵌套
条件
for
while
循环
抛出异常
异常类
traceback
exception
sys.exc_info
捕获异常
异常
五大基本语句
int
float
bool
complex(复数)
数字
使用单引号''或双引号\"\"括起来,同时反斜杠\\转移特殊字符
变量[头下标:尾下标]
字符截取
字符串
与list类似,区别:儿子不可添加、修改,但孙子是列表则可以改;删除只能用del
元祖tuple(有序、不可变、可重复)
不可变类型
使用下标索引
List.index()获取匹配值的索引
获取
list.append()列表末尾添加新的对象
list.extend()列表末尾一次性追加另一个序列中的多个值
添加
list[1] = 值
修改
del list[1]删除索引值
del list删除列表
list.remove()删除匹配的第一个值
list.pop()删除下标索引的值,并返回该值,默认删除最后一个值
list.clear()清空列表,类似于del list[:]
删除
list.copy()返回复制后的新列表
复制
遍历
列表操作
列表List(有序、可变、可重复)
键必须为不可变数据,且唯一,值可以是任意值,无序的不重复键
把相应的键放入到方括号中
dict.get(key)返回指定键的值,如果值不在字典中返回默认值None
dict['不存在的键'] = 值
dict.update(dict2)把字典参数 dict2(不存在与dict中的key) 的key/value对添加到字典 dict 里
dict['已存在的键'] = 值
dict.update(dict2)把字典参数 dict2(存在与dict中的key) 的key/value对更新值到字典 dict 里
del dict['键']删除键及值
del dict删除字典
dict.clear()清空字典里的键值
dict.popitem()删除最后一个(3.7版本之后)字典,返回值为键值对
dict.copy()返回一个字典的浅复制
dict.keys()返回可迭代键对象,list(dict.keys())可转化为列表
dict.values()返回可迭代值对象,list(dict.values())可转化为列表
字典操作
字典dict(无序、可变、键不可重复)
无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
set.add(elmnt)
set.update(set)参数可以是列表,元组,字典
set.clear()清空集合
set.discard(value)移除指定元素,移除一个不存在的元素时不会发生错误
set.remove(item)移除指定元素,移除一个不存在的元素时会发生错误
set.pop()随机移除一个元素
set.copy()
集合操作
集合set(无序、可变、不可重复)
可变类型
六种数据类型
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
必需参数
函数调用使用关键字参数来确定传入的参数值
关键字参数
调用函数时,如果没有传递参数,则会使用默认参数,默认参数不可再必需参数之前
默认参数
参数带一个星号 *的参数以元组(tuple)的形式导入,一般在最后
参数带两个星号 **的参数以字典的形式导入,一般在最后
不定长参数
强制位置参数(Python3.8)
参数
lambda 只是一个表达式,函数体比 def 简单很多,其他无区别
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数
lambda 函数
匿名函数
return
装饰器
利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动
反射
常用函数
函数
导入模块
import
从模块中导入一个指定的部分
from … import
把一个模块的所有内容全都导入到当前的命名空间(不应过多地使用)
from … import *
__name__
__import__
模块
目录包含一个叫做 __init__.py 的文件才会被认作是一个包
如果使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字
包
结构化
class ClassName:
类
__init__():构造方法
__del__ :析构函数,释放对象时使用
def method(self):
方法
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
变量
__init__()方法不重写时调用父类,重写时调用子类__init()__
如果重写了父类__init__ ,又要继承父类__init__ ,可以使用 super 关键字
重写
单继承
多继承
继承
实例化
面向对象
版本管理
环境隔离
虚拟环境
三个基本概念
只匹配字符串的开始,返回一个匹配的对象,否则返回None
re.match
匹配整个字符串,返回第一个成功的匹配,否则返回None
re.search
替换字符串中的匹配项
re.sub
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,否则返回空列表
re.findall
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回
re.finditer
re
正则表达式
数据操作
创建文件夹,默认权限777
os.mkdir
删除文件夹
os.rmdir
获取当前工作路径
os.getcwd
O_RDWR读写
os.open
os.write
os.close
返回当前文件的绝对路径
os.path.realpath(__file__)
路径拼接
os.path.join
返回文件路径
os.path.dirname
是否为文件
os.path.isfile
是否为目录
os.path.isdir
文件是否存在
os.path.exists
当前路径下的文件/目录列表
os.path.listdir
os.path
os
文件操作
模块操作
并发操作
四类基本操作
基础知识
python-excel
python-MySQL
爬虫
多线程
学习
Python
public class Hello { public static void main(String[] args) { System.out.println(\
习惯字母开头
类名、接口:首字母大写(大驼峰):ClassName接口的实现类一般为类名+Impl
方法名、变量名:首字母小写(小驼峰):functionName
//开头
/*这是注释blablabla...*/
/**这是注释*blablabla...*/
1byte=8bit
占有1byte
-128~127
byte(字节)
占有2byte
-32768~32767
shot
占有4byte
-2147483648~2147483647
占有8byte
-9223372036854775808~9223372036854775807
long l = 9000000000000000000L; // long型的结尾需要加L
long
整数类型
float f1 = 3.14f;//float型需要加上f后缀
double
浮点类型
char类型使用单引号',且仅有一个字符
char
字符类型
boolean
布尔类型
基本数据类型
字符串,使用双引号\"\"表示
String
类class
接口interface
数组[]
引用数据类型
final修饰
常量
数据类型
独立于方法之外的变量,用static修饰
可以被对象、类名调用
有默认值
类变量/静态变量
独立于方法之外的变量,不用static修饰
可以被对象调用
实例变量/成员变量
类方法中的变量
执行时创建,执行完成后销毁
必须初始化
局部变量
变量类型
封装
多态
Java
Jenkins
持续集成
docker
kubernetes
微服务
等价类
边界值
判定表/因果图
正交试验
错误判断
场景设计
设计方法
测试用例元素规范
用例名称规范
前置条件规范
操作步骤规范
预期结果规范
测试用例编写
设计规范
测试用例
项目简介、测试依据、测试环境、需求覆盖、测试覆盖、缺陷统计、测试结论与建议
测试报告
项目简介、系统架构、测试环境、测试策略、人员组织、时间安排、测试过程管理(测试输出的文档)
测试计划
测试用例设计方法
测试方案
界面测试
业务测试
兼容性测试
易用性测试
安装测试
黑盒测试
代码调试
白盒测试
单元测试
模块之间测试
集成测试
打包测试
系统测试
冒烟测试
回归测试
随机测试
验收测试
按阶段性类别
测试类别
禅道、jira
管理工具使用
功能测试基础
接口的通信原理与本质
cookie、session、Token
接口测试方法
GET,POST,PUT,DELETE
接口测试基础
工具使用:Navicat
增删改查脚本
MySQL 存储过程
多表联查
MySQL与Oracle区别
排序
group by
去重
数据库基础
Linux系统安装
工具使用:Xshell
Linux命令
数据库环境搭建MySQL、Oracle
应用服务器搭建Tomcat
Linux系统
http与https区别
tcp连接
HTTP、TCP/IP
网关
计算机网络
测试基础
appnium
APP自动化
DOM
name
class
id
属性
标签名(tagname)
链接文本(模糊/精确)
Xpath(绝对/相对)
轴定位
css定位
元素定位
ifarm切换
alter切换
窗口切换
ActionChain
鼠标操作
select类
js页面滚动
js日期控件
js上传
js
元素操作
强制等待
隐形等待
显性等待
等待
assertTrue
assertEqual
断言
PageObject
selenium
web自动化
UI自动化
request库
接口自动化
TestCase类,所有测试用例类继承的基本类class BaiduTest(unittest.TestCase):
unittest.main()
addTest(): addTest()方法是将测试用例添加到测试套件中
TestSuite()类是用来创建测试套件的unittest.TestSuite():
run(): run()方法是运行测试套件的测试用例,入参为suite测试套件。
TextTextRunner()类,通过该类下面的run()方法来运行suite所组装的测试用例,入参为suite测试套件unittest.TextTextRunner():
unittest
通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。
示例
ddt
python库
自动化测试
基准测试
高负载下测试,该测试更容易发现系统问题,关注稳定性
压力测试
逐步加压测试,关注不同负载下相关性能指标
负载测试
稳定性测试
并发测试
数据量测试
配置测试
性能测试分类
TPS
响应时间
吞吐量
资源利用率
性能测试指标
测试计划-测试方案-执行测试-记录指标-定位瓶颈-分析结果-总结报告
性能测试流程
性能测试理论
正则表达式提取器
Json Extractor提取器
Boundary Extractor提取器(4.0版本)
XPath Extractor提取器
关联
CSV Data Set Config
用户定义的变量
参数化
插件包:jmeter-plugins-manager-1.3
指标数据:jpgc - Standard Set
ServerAgent.batServerAgent.sh
ServerAgent
服务端
JMeterPlugins-Standard和JMeterPlugins-Extras
客户端
监控
插件
jmeter
web_reg_save_param
web_reg_find
校验
脚本
loadrunner
工具
nmon工具
jstack
cpu分析
jstat
mat
内存分析
top/cpu
free/内存
df/磁盘
ss/iftop/网络流量
Linux
window
系统服务器
Jprofile
jvirsualVM
应用服务器
Redis监控
数据库
内存优化
连接数优化
压缩
Tomcat优化
内存
索引
Connections
连接数
慢查询
MySQL优化
调优
性能测试
nmap
dirsearch
burpsuit
awvs
sqlmap
安全测试
测试开发
测试技能树
0 条评论
回复 删除
下一页