(1)post:以表单(webform)形式提交参数,相对安全,可提交的数据参数会比较大;
(2)get:以URL中的参数形式提交,相对不安全,提交的参数有限制(地址栏承受数据大小有限);
1. 接口:
利用接口划分服务端及客户端- 1.1. 利用数据分层,先定位服务端service或者前端的问题
- 1.2. 短链接可用,postman,fiddler等工具来分析(熟悉项目架构,了解是调用什么项目,是部署的调用出错,还是模块功能出错)(吕昕颖已经详细分享,可以学习)
- 1.3. 长链接用protobuf封装为二进制,可用接口的单元测试代码来检查(缺点是要编译运行),网上也有wireshark的poto插件,可配置)
补充:如果可以找开发拿到单元测试的代码,完全可以拼到自动化接口测试框架中去,回归测试很方便,再也不用找开发测接口了,protobuf封装的数据也可以自己测试啦。
我这里用的testng:
注解TestNG的特点
-注解
-TestNG使用Java和面向对象的功能
-支持综合类测试(例如,默认情况下,不用创建一个新的测试每个测试方法的类的实例)
-独立的编译时测试代码和运行时配置/数据信息
-灵活的运行时配置
-主要介绍“测试组”。当编译测试,只要要求TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
-支持依赖测试方法,并行测试,负载测试,局部故障
-灵活的插件API
-支持多线程测试
TestNG(Next Generation)是一个测试框架,它受到JUnit和NUnit的启发,而引入了许多新的创新功能,如依赖测试,分组概念,使测试更强大,更容易做到。 它旨在涵盖所有类别的测试:单元,功能,端到端,集成等…
可视化结果非常方便查看通过和失败的test case,以及失败原因:
在项目路径下生成可视化网页结果.png 2passed.png 1passed_1failed.png可以检查结果,并利用错误信息定位到测试代码的位置,排除是否是环境问题、测试代码问题。
功能很强大,以后可以再深入研究。
2. 日志:
- 2.1服务器日志
检查端口 netstat -ntlp
内存爆表.png jstack pid查看堆栈错误信息,定位问题代码 jstack 打印堆栈30行信息内存使用率超高时,定位线程
参考检查tomcat占用内存过高的线程,随笔:http://www.jianshu.com/p/8a0a69ac69f0
- 2.2项目日志
沟通日志定义方式,查看请求、返回的code,以及error log的堆栈错误
可参考查询卸载项目时打印的项目log查询:http://www.jianshu.com/p/3dcfbb5d75c1
- 2.3数据库日志
缺少示例,待去公司补充慢查询等log
3. 数据库:
- 3.1. 需要项目提供详细的数据库设计文档;
- 3.2. 生产环境中测试时多接触数据,客户端操作+数据检查,可以更直观检验数据正确性。
4. 对迭代模块或者项目更新的敏感性
多跟开发和运维聊聊,有什么改动提前准备。
- eg.1.数据库增加读写分离,(虽然是开发要考虑的事情,但是如果有数据问题,就要考虑是否有考虑不周),要提前沟通读写分离有什么影响,测试主从数据库的读写,比如遇到过的主从同步的时间没考虑到,所以有插入数据库到主库后,立即查询时,从库未同步,所以没查到数据,给用户提示了插入失败,而实际已经写入数据库了。
- eg.2.增加负载均衡服务器,就要考虑用户分流后的在线使用是否正常,以及项目间转发消息之类的测试。
网友评论