darlingmz
向前看,向前迈!

  入软件测试行业已经快三个年头!

  第一年写小白总结的时候是2019-02-11,按理第二年测试总结应该在2020-02-11,现在都已经奋斗在第三个年头了,时间过的挺快成长也是颇多。第二年总结因为写作方向不明确没整理,今天偶然看了一个文章决定还是把第二年整理出来,也构思回顾下我的2020年。

  偶然看到的文章地址:https://mp.weixin.qq.com/s/kIVFIvfcWXg6YPqbfsRVyA

  像文章中所说,第一年是打基础的一年,流程、业务能力更重要,再就是负责任的态度。第二年是大量使用工具的一年,用工具去辅助测试。下面就整理我工作遇到常用的工具以及技能上的提升。

  • 第一趴

  1、抓接口工具

  (1)使用Charles工具

  (2)其次使用过Fiddler:https://www.cnblogs.com/yyhh/p/5140852.html

  (3)再就是要抓长链接是用的Wireshark:https://www.cnblogs.com/darlingmz/p/12329194.html

  (4)Charles使用归类:

 1 使用方式查看SSL,绑定对应Local IP Adresses,chls.pro/ssl信任证书
 2 Focus、Enable SSL Proxying
 3 看请求时间间隔
 4 常用校验接口返回
 5 修改入参看返回
 6 Map到Remote,https到http接口
 7 Map到本地修改,控制自己想要的数据返回
 8 捕获MacOS Proxy抓本机、自动化执行的接口
 9 炸弹型💣问题一般赶紧找服务端看问题:redis写满、磁盘写满、服务宕机...
10 服务端定位问题复制Copy cURL Reques

  2、Postman使用

  (1)对应各类型接口

  (2)建立colletions(接口集合)

  (3)设置Environment(环境变量)

  (4)使用monitors的使用(监控器)

1 UEL导入
2 get、post、put接口
3 post接口主要是控制入参,不一定要写全所有入参字段,只要填写必要入参即可
4 Params字段、Headers字段
5 post接口入参的json格式:Params —— Body —— raw —— jSON —— {}
6 post接口入参的xml提交:Params —— Body —— raw —— XML —— html
7 设置公共字段,选择不同环境{{base_url}}admin/v1/get_all_sdk_blacklist_config 控制 base_url:http://qa.XXXXX.ori.ksXXX.net/
8 一个Collections的分享、导入Import
9 某个collections创建一个create a monito监控

  3、抓崩溃技巧

  (1)iOS使用Xcode:符号化崩溃日志

  (2)Android使用adb logcat立即获取执行日志,定位fatal

    ·adb logcat | grep "关键字"

    ·重点需要学习积累常用的adb命令

    ·https://www.cnblogs.com/darlingmz/p/12737680.html

  (3)Android使用Studio获取控制台日志

  (4)手机本地的日志目录:

获取崩溃日志:
➜  ~ adb shell 
➜  ~ adb pull sdcard/Android/data/包名/files/linkv/linkv_2020-06-02_1591102970.txt ./

  (5)业务层获取用户日志工具/接口

  4、Python + 接口自动化

  每20分钟定时执行一次。

  灰度机 与 线上机器的返回是否一致对比校验。

  5、Airtest + Python + UI自动化

  我测试的是APP端的业务,使用UI自动化可以减少回归的重复工作。在测试过程中也可以通过UI自动化完成手工无法持续执行的问题。

  首先需要有一定的python基础,Airtes的使用很简单基本三天就能上手、下载个AirtesIDE的客户端了解下poco、swipe、touch,再学习下校验即可上手写test.air了。学习官网文档:https://airtest.doc.io.netease.com/。我们团队有专门人员写测试框架,了解页面元素的获取,在框架里如何调用,补充Tescase中的air即可,重点应该是执行的校验。

 1 支持多包回归case用例
 2 各类登陆方式:邮箱、手机、谷歌、Line、Facebook等
 3 自动化注册账号
 4 一键开播
 5 进房间、看播送礼、校验金币数
 6 个人信息一键设置、修改
 7 各级页面-进入二级页面-业务功能校验
 8 背包信息校验
 9 私信、直播间私信功能
10 原生页面、H5页面业务逻辑校验
11 支持更复杂的业务场景

  举个例子:直播APP常用的进房间观看,上下话切换直播间,可以通过UI自动化实现上滑动这个动作,通过设置滑动的房间个数(比如:300个),就不用人手工操作300次了。

  举个例子:每次必须要回归验证的登陆,由于马甲包多,登陆方式多,每次都需要回归很久。其实登陆逻辑不常修改,写成UI自动化刚刚好。主要特殊版本的判断、走不同的方法。

  6、网损仪

  用来控制网络损失情况,模拟用户弱网场景。因为本身测试的是一款直播APP,需要在不同网络下测试直播场景,使用的特别多。

  规范:https://www.cnblogs.com/darlingmz/p/12217965.html

  7、Android内存泄漏

  • 工具:Android studio,mat

  • 操作与分析:

  • Android Studio:

  (1)打开Memory Profiler: 依次点击 View > Tool Windows > Profiler(也可以点击工具栏中的 Profile 图标)

  (2)从 Android Profiler 工具栏中选择要分析的设备和应用进程(如果已通过 USB 连接设备但系统未列出该设备,打开手机上debug调试)

  (3)点击 MEMORY 时间轴上的任意位置以打开 Memory Profiler

  (4)点开需要进行内存分享的页面,直播间,进行点击操作

  (5)使用App后置后台,在Android Profiler中手动GC

  (6)dump内存快照

   (7)将 HPROF 文件从 Android 格式转换为 Java SE HPROF 格式(android_sdk/platform-tools/ 目录中提供的 hprof-conv 工具)

hprof-conv heap-original.hprof heap-converted.hprof
  • Mat

  (1)用mat打开hprof文件

  (2)点击Hisogram图标,查看当前内存中最占内存的class,搜索Act

  (3)去除被弱引用,软引用,虚引用的对象

  (4)(例)Shallow Heap:占用堆栈大小,ApplicationDelegate:引用了sCommonInfo的类,Android studio中全局搜索该类找到引用的地方找对应研发

  (5)置后台首页不会被销毁,内存泄漏不用管首页 VideoListActivity

  • 相关文档

  1. MAT安装:https://blog.csdn.net/hanchao5272/article/details/93379202
  2. Android studio测内存泄漏:https://developer.android.com/studio/profile/memory-profiler?hl=zh-cn

 

  • 第二趴 

  1、沟通技巧能力

  事在人为,沟通技巧也是门艺术。

 

  2、项目/需求全面把控能力

  这个能力在于从发现问题人,转变为项目推荐人,逐渐从QA转变成项目经理。

 

  3、需求总结报告能力

  明白你要汇报的对象,随时调整报告人关注的重点。

  

  4、流程推进能力-QA职能明确

  QA只有能力提升了,才能得到应有的尊重。

  

  5、扩展技能方向

  ·职业扩展方向决定你的技术学习的方向:https://mp.weixin.qq.com/s/U-NbmmfFnx-YggO1taF2Yg

  ·学习要有目的性:当你没有目标只是想广泛增长见识时,我听到的建议是“超一个方向做精、做极致”,因为这个过程中必不可少的会需要了解很多技术,这就满足了你拓宽能力的想法。

  很明显我的第三年偏重了音视频测试。大家都知道,了解音视频相关的知识、在懂的基础上才能发现问题,这是转音视频QA,我遇到的最大难题。因为它太杂了,光是平面的了解基本知识点就需要克服很多困难,更何况是纵向的学习。所以我选择从架构出发,当画一个流程图时就会遇到很多词,从遇到的知识点出发去学习,远比宽泛去音视频要高效的多。

  在自己画自研架构的同时,需要了解行内已经有的实现图,俗称“知己知彼,百战不殆”。对比别人的架构看更容易定位自研架构存在的问题,QA就不仅仅是发现bug,还能从架构层发现更深的问题。这是从方向决定你要学习的方向,再就是从QA晋升的必要途径去学习,每个QA都要去了解的:单元测试框架 —— 自动化工具—— 接口自动化 —— UI自动化 —— 可持续集成、自动化部署。

  ·经历的一个流程:选择计算机语言java or python,选择一个流行的库,httpclient or request,然后设计用例,code or excel or mysql,需要执行用例的框架,还有报告输出,日志记录,预警提醒。还需必要的辅助能力,如可持续集成,自动化部署。

 

posted on 2020-12-16 16:54  darlingmz  阅读(256)  评论(0编辑  收藏  举报