测试技能树
2022-08-31 16:38:37 6 举报
AI智能生成
软件测试一份思维导图就够了
作者其他创作
大纲/内容
Python
基础知识
基础
print("hello python")
标识符
命名规则
字母(区分大小写)下划线数字
字母或者下划线开头
单下划线_hello表示不能直接访问类属性,其无法通过 from...import* 的方式导入<br>
双下划线__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()
三个基本概念
结构化
函数
参数
必需参数<br>
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
关键字参数<br>
函数调用使用关键字参数来确定传入的参数值
默认参数 <br>
调用函数时,如果没有传递参数,则会使用默认参数,默认参数不可再必需参数之前
不定长参数
参数带一个星号 *的参数以元组(tuple)的形式导入,一般在最后<br>
参数带两个星号 **的参数以字典的形式导入,一般在最后<br>
强制位置参数(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 {<br> public static void main(String[] args) {<br> System.out.println("Hello, world!");<br> }<br>}
标识符
命名规则
字母(区分大小写)下划线数字
习惯字母开头
命名规范(建议这么做)
包名:小写字母及英文句号:com.python.hello
类名、接口:首字母大写(大驼峰):ClassName<br>接口的实现类一般为类名+Impl
方法名、变量名:首字母小写(小驼峰):functionName
常量:大写字母:COUNT
关键字
注释
//开头
/*<br>这是注释<br>blablabla...<br>*/
/*<br>*这是注释<br>*blablabla...<br>*/
数据类型
基本数据类型
整数类型
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
测试基础
功能测试基础
测试用例
设计方法
等价类
边界值
判定表/因果图
正交试验
错误判断
场景设计
设计规范
测试用例元素规范
测试用例编写
用例名称规范
前置条件规范
操作步骤规范
预期结果规范
测试报告
项目简介、测试依据、测试环境、需求覆盖、测试覆盖、缺陷统计、测试结论与建议<br>
测试计划
项目简介、系统架构、测试环境、测试策略、人员组织、时间安排、测试过程管理(测试输出的文档)<br>
测试方案
测试用例设计方法
测试类别
黑盒测试
界面测试
业务测试
兼容性测试
易用性测试
安装测试
白盒测试
代码调试
按阶段性类别
单元测试
集成测试
模块之间测试
系统测试
打包测试
验收测试
冒烟测试
回归测试
随机测试
管理工具使用
禅道、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<br>
监控<br>
服务端
ServerAgent
ServerAgent.bat<br>ServerAgent.sh<br>
客户端
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 条评论
下一页