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