到两年前笔记,当时的有些内容还是仍旧具有学习意义,再次整理发出来。
分为测试步骤注意、知识积累与问题集锦二个方面进行总结.
一.测试步骤注意
测试前准备:
之前一定详细分析需求文档(包括每一个字段,每一个约束,在交流需求的时候,有针对性地关注隐藏约束),并且测试过程中,遇到不清楚的情况,积极与开发交流.
测试环境部署:
需要提前考虑,分配的资源是否满足当前需求,多大的资源是合理的,有哪些风险.比如存储文件的文件夹空间是否充足.(倘若此时环境,不是由我们部署,我们也最好搞清楚资源的分配情况,比如测试环境的内存多大?线上环境服务器的内存多大?现在我们测试环境的中转机的内存只有30多个G,线上有200G,这样的差距,对于发现问题而言,是否有意义??)
着手测试:
不要盲目开始测试,首先测试最简单的最常用的场景(P1级别),再分析哪些用例在前提环境下相同,可以复用,或者一条用例需要依赖另外一条用例执行,做好分析,再执行.
测试中:
不能太乱,思路清晰,不然发现问题,无法复现,并且极易造成返工.另外,测试过程中遇到极易出错的地方 ,也要相互交流(踩过的坑,提醒测试伙伴不要再跳),加快小组效率.
测试遇见问题:
1)与开发交流过程中,一定注意表达,不能一开始就直指是开发的程序有问题,换位思考,很容易引发矛盾.
2)遇见问题,与开发交流后,一定要主动持续推进(不然,开发可能有其他的任务,并不会尽快定位)
5.做好记录.
在测试的过程中,遇到的程序错误情况,以及原因.做好记录.特别是在我们这种快速成长的过程,也许现在遇到每个错误,都觉得很陌生,但是保持记录,形成印象,以后可以加快定位分析问题.
6.总结与沉淀
哪些常用的技能可以写成脚本,进行复用:比如构建大表,插入数据的过程.又比如马上要执行的数据质量监控50个并发(如果字段全部要手动添加,时间成本太大,写个脚本自动生成有细微差别的curl命令)
二.知识积累与问题集锦
感觉大部分都在与数据库产生的问题对抗……也反映出这部分知识的迫切欠缺.
1.mysql上常用命令:
进入mysql : mysql -p
显示当前database : show databases
使用database : use databases
创建database : create database name
2.遇见mysql字符集问题:
显示当前使用的字符集: show variables like 'character_set_%'
建表时指定CHARACTER SET utf8 COLLATE utf8_general_ci;
显示当前的建表语句:show create table channelinfomysql\G;
3. oracle上操作表:
su – oracle
sqlplus进入sql命令行
在sqlplus里面编写shell脚本可以通过如下命令:
host vi test.sh
@test.sh运行脚本
建表时,某一字段采用系统时间:
CREATE TABLE Orders
(
order_num int NOT NULL ,
date_order date default sysdate NOT NULL ,
cust_id char(10) NOT NULL
);
添加字段
alter table mid_contactinfo add(status varchar(20),createdate varchar(50),modifydate varchar(50));
修改字段
alter table mid_contactinfo modify(status varchar(100),createdate date,modifydate date);
4.数据库 ORA-03113: end-of-file on communication channel
原来是大批量的数据插入导致闪回空间不足, 最常用的办法删除不需要的归档日志文件或者增加闪回空间大小(db_recovery_file_dest_size)
oracle运行dml的时候会占用undo和flashrecovery
5.临时表空间不足:
复制大表时(17G)出现临时表空间不足的问题.
设置临时表空间为自动增长:
步骤
切换管理员身份 :
sqlplus / as sysdba
查看临时表空间动态视图:
select * from v$tempfile;
alter database tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' autoextend on next 5m maxsize unlimited;
6.表空间不足:
建表时 ,出现表空间不足错误
创建表空间:
create tablespace data01 DATAFILE '/oracle/oradata/da/DATA01.dbf' SIZE 500M UNIFORM SIZE 128K
将原有的表移动到新建的表空间:
alter table tablename move tablespace tbsname;
建表时指定表空间:
create table A01
(
col1 VARCHAR2(2),
col2 VARCHAR2(2) default 'Y'
)
tablespace tsp1
7.no collection 的错误.
对数据库进行操作后 要commit ;
不要一次性插入大量数据 而不commit,最好每500行数据commit一次,,不然有可能会报错
8. 文件存放根节点user占用已满,报错:no space left
需要记录常用的java异常报错:
java.lang.OutOfMemoryError: GC overhead limit exceeded
当GC为释放很小空间占用大量时间时抛出。
一般是因为堆太小。导致异常的原因:没有足够的内存。
解决方案:
1、查看系统是否有使用大内存的代码或死循环。
2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit
OOM大家都知道,就是JVM内存溢出了,那GC overhead limit exceed呢?
通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生
修改了jvm 4G 加上了gc limit
GC overhead limt exceed检查是Hotspot VM 1.6定义的一个策略,通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生。
java.io.EOFException: Can not read response from server. Expected to read 255 bytes, read 0 bytes before connection was unexpectedly lost.
网络连接异常了,包丢失了.
网友评论