作者andrew771027 (老柏~)
看板Soft_Job
标题Re: [请益] QA学生实习的问题
时间Sat Dec 5 13:55:52 2020
原文述删
前阵子参加某金控的分享会後觉得有点空虚
加上最近在做内部教育训练,整理了以前做的一些在自动化测试上的事
少少的经验 分享给版上QA大大们
希望多多交流
敝公司一样是用JIRA做专案管理(省略
之前用的测试框架是一样使用Robot Framework
老实说,对一个会写程式的人来说,Robot Framework并没有很有弹性
所以最近在新案子上尝试直接使用Pytest + Python + Selenium
(RF的底层也是Python)
(新案子不是只要把测试案例转成Autotest script里就好,因为很大,
所以需要更多的设计,这点我还在头痛)
很多东西都要自己刻,不像RF帮你做好
-------------------------------------
从最简单的Web Locator说起
如果你用Locator里有文字,你要怎麽设计?
如果PM改了一个字,你的测试脚本会不会就此失败?然後要花很多时间Maintain
所以後来弄了一个演算法,直接在Locator里嵌入i18n,减少维护的成本
-------------------------------------
随着测试脚本的扩大,就必须开始使用一些Design Pattern让程式好维护好扩充
Page Object Pattern是不管你看任何书任何资料都会写的
让测试逻辑 页 Web Locator分离的一种概念
不会让你把所有Code写在Main里
-------------------------------------
接着一些维护的功
如果在开发阶段,DB一直清怎麽办?你要怎麽办?
如果你的商业逻辑有些是会有「消耗」的概念,你要怎麽让每次测试的结果都一样?
如果你的商业逻辑有碰到信件,信件里藏有OTP或是Secrect Info你要怎麽取得?
以前是把信送到一个叫Yopmail的disposal信箱里,但是後来有该死的reCaptcha
就不能自动了
後来是把信指到Gmail去,然後用Gmail API把信的html拉出来,再做字串处理
当然你的测试Code也要支援不同环境
--------------------------------------
为了要更自动,所以整进了CI
所以你的浏览器要支援headless
因为测试案例很多,要parallel的跑测试
接着简单的包进Docker里 整进CI (这里真的只会基本的
未来有时间,还希望可以支援多浏览器 多OS
最後把测试结果是用Email TestRail还是其他通讯软体 发给大家
---------------------------------------
以上就是目前做过的一些事情
欢迎版上的QA大大分享和指教
有兴趣的话也欢迎站内信
敝公司在作Insurance X Technology
公司QA缺人啊
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.136.142 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1607147759.A.96D.html
1F:推 joel913: 好文,推+112/05 15:06
2F:推 waynesmlie: 我看得雾煞煞 我的原文楼主QQ 看来我真的不适合12/05 15:31
3F:推 lee457088: 好闻推12/05 16:34
4F:推 taurus5650: 推12/05 17:02
※ 编辑: andrew771027 (36.229.136.142 台湾), 12/05/2020 17:11:25
5F:→ superpandal: 自己刻自己用挺好12/05 20:18
6F:推 joney641119: 完全自己刻太累了,建议改用pytest,比robot有弹性多了12/05 20:29
7F:推 joney641119: 从单元测试,写mock/fake,到系统测试全部可以用这套12/05 20:33
8F:→ joney641119: 平行测试也没问题,装个pytest-xdist就行了12/05 20:35
9F:→ joney641119: 一堆fixture可以用12/05 20:36
10F:推 joney641119: 而且robot有一个问题比较困扰我,发生问题的时候12/05 20:42
11F:→ joney641119: 你只知道某个keyword fail,这个keyword详细做了甚麽12/05 20:43
12F:→ joney641119: 导致fail,不是太清楚, 常常要用猜的12/05 20:43
13F:→ joney641119: pytest一目了然12/05 20:44
14F:→ andrew771027: 补充一下,有用pytest 当框架12/05 21:09
15F:→ andrew771027: keyword要写log啊12/05 21:09
16F:推 joney641119: keyword的参数常常也是一个代号,他是甚麽值呢?12/05 21:16
17F:→ joney641119: 又要找前面的keyword12/05 21:16
18F:→ joney641119: log太长,html上面的讯息是...,详细的值在XML档案内12/05 21:17
19F:→ joney641119: 怎麽找呢?写个parser吧,总之,超麻烦的12/05 21:18
20F:→ joney641119: 奉劝有用robot的QA同胞们,改用pytest12/05 21:19
21F:→ joney641119: 而且跟RD讨论的时候,常常你这个keyword是在做甚麽? 12/05 21:21
22F:→ joney641119: 大概好几个月前写的,我不可能记得的,要回去查 12/05 21:21
23F:→ joney641119: 存取list and dictionary方式又是robot自己的格式 12/05 21:23
24F:→ andrew771027: 同意joney大 12/05 21:37
※ 编辑: andrew771027 (36.229.136.142 台湾), 12/05/2020 21:53:46
※ 编辑: andrew771027 (36.229.136.142 台湾), 12/05/2020 21:54:11
※ 编辑: andrew771027 (36.229.136.142 台湾), 12/05/2020 22:06:05
※ 编辑: andrew771027 (36.229.136.142 台湾), 12/05/2020 22:32:23
25F:推 stillcolor: 推!但我目前还是懒人RF在用... 12/07 16:03
26F:→ stillcolor: 虽然建立测试案例快很多,要规划维运真的是比较费心思 12/07 16:03
27F:→ stillcolor: 框架越简易使用的,弹性相对就越低... 12/07 16:04
28F:推 mirror0227: 推 12/08 21:43
29F:推 sabrinaz88: 好文推 01/21 08:58