20170806工作分享

(1)post:以表单(webform)形式提交参数,相对安全,可提交的数据参数会比较大;
(2)get:以URL中的参数形式提交,相对不安全,提交的参数有限制(地址栏承受数据大小有限);

1. 接口:

20170806工作分享_第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的启发,而引入了许多新的创新功能,如依赖测试,分组概念,使测试更强大,更容易做到。 它旨在涵盖所有类别的测试:单元,功能,端到端,集成等…

20170806工作分享_第2张图片
注解

可视化结果非常方便查看通过和失败的test case,以及失败原因:

20170806工作分享_第3张图片
在项目路径下生成可视化网页结果.png
20170806工作分享_第4张图片
2passed.png
20170806工作分享_第5张图片
1passed_1failed.png

可以检查结果,并利用错误信息定位到测试代码的位置,排除是否是环境问题、测试代码问题。

功能很强大,以后可以再深入研究。

2. 日志:

  • 2.1服务器日志
    检查端口 netstat -ntlp

内存使用率超高时,定位线程
参考检查tomcat占用内存过高的线程,随笔:http://www.jianshu.com/p/8a0a69ac69f0

20170806工作分享_第6张图片
内存爆表.png
20170806工作分享_第7张图片
jstack pid查看堆栈错误信息,定位问题代码
20170806工作分享_第8张图片
jstack 打印堆栈30行信息
  • 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.增加负载均衡服务器,就要考虑用户分流后的在线使用是否正常,以及项目间转发消息之类的测试。

你可能感兴趣的:(20170806工作分享)