51Testing软件测试论坛

标题: 【你来问我来答第104期】:测试如何在持续集成中占有一席之地!(活动已结束) [打印本页]

作者: lsekfe    时间: 2019-7-1 14:07
标题: 【你来问我来答第104期】:测试如何在持续集成中占有一席之地!(活动已结束)
[attach]125470[/attach]
论坛ID:Real_小T
真实姓名: Tino
现任公司: 某建站平台
现任职位:自动化测试工程师 Selenium版块版主
工作经验:5年,独立负责过多个自动化测试项目,平台包括Web、手机APP、H5、微信小程序等,行业涉及装修、高校、金融、建站等,经历从手工测试到自动化测试的职业生涯前期、测试组从无到有的组建、技术团队之间的沟通交流和持续集成环境的使用。

各位会员可以在7月10日前以回帖的方式向客座专家提问。
(请大家围绕本期客座专家的擅长领域进行提问、探讨)
客座专家将在7月11日—7月31日为大家集中解答。

机会难得,欢迎大家踊跃提问!


作者: applepen    时间: 2019-7-1 16:22
1.什么程度的自动化测试比较适合持续集成?smoke?还是基本机能测试?还是可以更深度的自动化测试?
2.想要开展自动化持续集成,都需要哪些步骤?
作者: 心妎勭    时间: 2019-7-2 09:35
你好,我看到你也经历了从手工测试到自动化测试,我现在也想学习自动化,网上资料多但乱,有点不知从何下手,想问下你有什么建议吗?
作者: 哈士奇的罪恶    时间: 2019-7-2 11:10
你好嘉宾,有个Jenkins域名配置的问题请教下。我注册的Jenkins初始url是localhost:8080,如何才可以在公司的Jenkins域名中登录,怎么做,求个方法,非常感谢!
作者: 海上孤帆    时间: 2019-7-2 11:14
做集成测试的时候,不了解接口函数的测试方法,求您指点下~
作者: 春天的上海    时间: 2019-7-2 11:17
我在用testbed进行集成测试的时候,在将所有计划要调用的函数include进去以后,打桩,创建测试用例,运行用例,在build的时候,总是显示我要测试的被调用函数undefined reference,不知道问题出在哪里,请大神不吝赐教。
作者: Real_小T    时间: 2019-7-2 14:57
applepen 发表于 2019-7-1 16:22
1.什么程度的自动化测试比较适合持续集成?smoke?还是基本机能测试?还是可以更深度的自动化测试?
2.想 ...

1.都可以,我司目前在跑的就有不同程度的自动化测试脚本,关键是看跑它的目的是什么
2.就如同上面提到的,开展持续集成的目的要明白,是为了开发提交代码后的自测?或者每天的自动发布上线?还是别的什么。搞清楚目的之后,就得开始选型,目前jenkins仍然占有市面很大份额,我司用的是gitlab里的CI/CD功能,功能应该大同小异。选型完了之后开始根据实际情况开始设计流程,具体实现步骤可以网上查询相关技术文档。最后,run it!
作者: Real_小T    时间: 2019-7-2 15:03
心妎勭 发表于 2019-7-2 09:35
你好,我看到你也经历了从手工测试到自动化测试,我现在也想学习自动化,网上资料多但乱,有点不知从何下手 ...

用心,用心了就肯定不会乱,首先一定要设立目标,我要干什么,我要通过什么途径去达到这个目标,举个例子,自动化测试无非就是用一款自动化测试工具通过一门语言去达到自动测试一个软件/应用的工作,那么选一款市场份额最高的工具+一门最流行且易学的语言+一个能触手可得软件/应用练手+你的努力,就能达到你的目标。
小建议:selenium+python/java+baidu/某论坛网站/某社交网站
作者: Real_小T    时间: 2019-7-2 15:17
海上孤帆 发表于 2019-7-2 11:14
做集成测试的时候,不了解接口函数的测试方法,求您指点下~

接口函数?你这指的应该是白盒测试了吧,网上随便找了个列表供参考

作者: Real_小T    时间: 2019-7-2 15:23
哈士奇的罪恶 发表于 2019-7-2 11:10
你好嘉宾,有个Jenkins域名配置的问题请教下。我注册的Jenkins初始url是localhost:8080,如何才可以在公司 ...

你好,我没完全看懂,你是想说你想在公司的电脑访问家里搭建的jenkins吗?
作者: Real_小T    时间: 2019-7-2 15:25
春天的上海 发表于 2019-7-2 11:17
我在用testbed进行集成测试的时候,在将所有计划要调用的函数include进去以后,打桩,创建测试用例,运行用 ...

很抱歉,我没用过这个工具,无法给你答案,不过undefined reference这个错就是函数未定义,你是不是没导入或者名字写错了这类的问题?
作者: applepen    时间: 2019-7-4 08:59
Real_小T 发表于 2019-7-2 14:57
1.都可以,我司目前在跑的就有不同程度的自动化测试脚本,关键是看跑它的目的是什么
2.就如同上面提到的 ...

1.我对持续集成的理解只在表面。如果可以的话,对于自动化测试在持续集成中是如何运作的(怎么个操作流程)能否简单介绍一下。例:开发提交代码---->Jenkins处触发---->将代码打包部署到测试环境中同时执行自动化测试?  是不是和我想的流程是一样的?
2.如果开发没有介入到持续集成中打包通过其他形式发送的话。自动化测试还有介入到持续集成中的必要吗?
作者: Real_小T    时间: 2019-7-4 10:12
applepen 发表于 2019-7-4 08:59
1.我对持续集成的理解只在表面。如果可以的话,对于自动化测试在持续集成中是如何运作的(怎么个操作流程 ...

1.是的,和你想的流程基本一致,可以在某一时间点(最好是闲时)设定自动把之前一天开发提交的所有代码统一收集并部署到测试环境然后跑自动化测试,这样就实现无人值守了,另外这个测试环境最好相对独立且干净一点,只作为自动化测试用
2.作用就不是很大了,因为自动化测试纳入持续集成流程中的目的是为了自动测试某测试环境下的最新代码的表现情况,如果其中没有代码部署这一操作,那测啥呢?
作者: 心妎勭    时间: 2019-7-5 09:18
Real_小T 发表于 2019-7-2 15:03
用心,用心了就肯定不会乱,首先一定要设立目标,我要干什么,我要通过什么途径去达到这个目标,举个例子 ...

谢谢,我目前正在学习Python,有点恐慌,不太自信,有您的建议会比较安心
作者: 马琰的春天    时间: 2019-7-8 16:04
您好,我有个问题想请嘉宾帮我看下,谢谢!
依赖上游系统很多,但是上游环境又不够稳定
导致开发无法在测试环境进行自测
如果要自己构造虚拟数据,一是需要构造的上游数据较多很不方便,二是也没有真正调通依赖接口
想问下大神,有什么方法可以解决这个问题?
作者: 凤舞飘零    时间: 2019-7-8 16:06
做集成测试的时候怎么让单个测试 case 在出错后重新再跑,直到跑成功为止。
集成测试的时候一次性要跑20多个case。有可能由于环境的问题,有时候跑一个case的时候会报错。
只要中间一个case出错,那前面跑的都白跑了。费时又费力。
有没有一种方法,可以让这个case报错的时候,重新开始跑,一直到成功为止。
昨天听小道消息--快钱之webdriver,恒温有一句带过这个方法。我到网上去查了查,而且问过开发。都说没有相关的方法。。
希望嘉宾能够给我帮助。
作者: 巴斯蒂安    时间: 2019-7-8 16:10
嘉宾你好,想问下不同规模的团队,如何做好持续集成?
作者: Real_小T    时间: 2019-7-8 16:57
凤舞飘零 发表于 2019-7-8 16:06
做集成测试的时候怎么让单个测试 case 在出错后重新再跑,直到跑成功为止。
集成测试的时候一次性要跑20多 ...

你有没有用什么现成的测试框架?市面上一些成熟的测试框架都有它的重跑机制,比如mocha的retry或者junit的@rule等等,这就是用测试框架的理由之一
作者: Real_小T    时间: 2019-7-8 17:14
马琰的春天 发表于 2019-7-8 16:04
您好,我有个问题想请嘉宾帮我看下,谢谢!
依赖上游系统很多,但是上游环境又不够稳定
导致开发无法在测 ...

你好,你这个上游系统是你们自己的系统还是第三方的,如果是你们自己的系统,那最好还是把它搞得稳定些,如果要自己造测试数据,那也不能嫌不方便,你既然是为了测试,那测试环境一定要完备,测试环境不好,测出来的东西又怎么敢上线呢?
作者: 道客的人生    时间: 2019-7-16 16:27
请教,在各位公司里,测试的代码必须和开发的代码放在一个仓库里吗?
还是各自分别维护自己的环境?
我们公司现在测试和开发的仓库是分离的,互不影响。这种情况下,代码的覆盖率如何检测呢?
也就是说测试代码必须和开发代码集成吗?期待您的回复。

作者: 测试的小女巫    时间: 2019-7-16 16:32
依赖上游系统很多,但是上游环境又不够稳定
导致开发无法在测试环境进行自测
如果要自己构造虚拟数据,一是需要构造的上游数据较多很不方便,二是也没有真正调通依赖接口
想问下有什么方法可以解决这个问题?谢谢!
作者: SH菇凉    时间: 2019-7-16 16:34
对于,如果会出现有些个别单元无法缺失另一个单元,拥有彼此相互的重要性,缺一不可,那这样只能使用集成测试,单元测试就完全无法执行了?相当于,AB是属于一起运行的,少了A,就出现BUG或无法运行;少了B,也出现BUG或无法运行
作者: 测试乞丐    时间: 2019-7-17 14:36
之前遇到一个问题:client端设备更新问题

  django的views.py中的函数的返回值只能是一个response对象,现在直接通过接口像django后台发送post请求的时候,是想获取设备当前client上已经连接的设备列表。

但是因为只能返回response对象,导致回去不到设备的列表。因为我要根据原来的设备列表进行更新,比如说原来有ABC三台设备,现在变成了AD设备,那么就要根据原来的设备列表来进行判断,将D添加到数据库中,将BC删除。
作者: 道客的人生    时间: 2019-7-17 14:41
我们目前正在评估与Visual Studio 2008(C#)和Subversion接口的不同应用程序,以便对我们的核心库进行自动构建。我们希望能够执行每晚构建,并通过电子邮件发送给每个开发人员的更改列表,或者将最新版本推送到每个工作站。您对这些工具的体验是什么?有哪些建议?
作者: Real_小T    时间: 2019-7-18 10:32
道客的人生 发表于 2019-7-16 16:27
请教,在各位公司里,测试的代码必须和开发的代码放在一个仓库里吗?
还是各自分别维护自己的环境?
我们 ...

不一定要放在一个仓库里,我们公司就是分离的。
我们利用的是在开发库中挂测试库作为子库的方式,开发代码集成工作做完之后进入测试库开始测试,这套流程全都通过自己自定义的脚本控制,所以是一体成型的。
作者: Real_小T    时间: 2019-7-18 10:33
SH菇凉 发表于 2019-7-16 16:34
对于,如果会出现有些个别单元无法缺失另一个单元,拥有彼此相互的重要性,缺一不可,那这样只能使用集成测 ...

mock大法
作者: Real_小T    时间: 2019-7-19 11:44
道客的人生 发表于 2019-7-17 14:41
我们目前正在评估与Visual Studio 2008(C#)和Subversion接口的不同应用程序,以便对我们的核心库进行自 ...

不好意思我对VS和svn已经有点淡忘掉了,不过你所列的流程最好是凌晨做构建之类的操作都非常实用,纳入持续集成中将会很有收益,不过构建之类的操作最好是放在凌晨执行,那时候网络环境可能是最好的,而且也没其它人占用资源,当然这个具体情况视你们实际情况而定,然后可以再付诸一些补救措施,比如自动重试、出错之后的警报措施,如果有冒烟测试的需要可以再加入测试的流程等等等等,都可以自我定制。
作者: 测试大当家    时间: 2019-7-22 14:58
[attach]125729[/attach]
如图
在hudson上配置的时候
这个execute shell
这个是怎么配置的
求指教

作者: aimer灬    时间: 2019-7-22 14:59
你好,我即将大学毕业是个小白,想从事软件测试这行,但是不知道从哪方面学起或者先打下什么基础,有什么书籍或者资料可以看,请求指导
作者: 吃吃吃货    时间: 2019-7-22 14:59
Real_小T 发表于 2019-7-19 11:44
不好意思我对VS和svn已经有点淡忘掉了,不过你所列的流程最好是凌晨做构建之类的操作都非常实用,纳入持 ...

我们公司是双版本运行的,所以master上打tag来区别出来
以下是我的一个修改旧版本例子,发现新增的v2.0.1包会影响到最新的v2.1,也许是这个方案问题还是我指令上参数需要修改?
  1. # git branch
  2. master
  3. *test
  4. # git add . && git commit -m "提交请求"
  5. # git checkout master
  6. # git tag
  7. v2.0
  8. v2.1
  9. # git show v2.0 \\取commi id 用作退回版本
  10. tag v2.0
  11. Tagger: *** <**@**.com>
  12. Date: **.**.**
  13. commit 4c2f7c6a3902a1d157dc5693801ce7d2f5e26ef5
  14. Author: *** <**@**.com>
  15. # git reset --hard 4c2f7c6a3
  16. # git merge --squash test \\--squash参数是可以忽略合并的commit,但要重新add
  17. # git add . && git add -u
  18. # git push
  19. # git tag v2.0.1 \\打标签
  20. # git push --tags        \\推送标签到服务器
  21. # git show v2.1
  22. tag v2.1
  23. Tagger: *** <**@**.com>
  24. Date: **.**.**
  25. commit a3902a1d157dc5693801ce7d2f5e26ef55654
  26. Author: *** <**@**.com>
  27. # git reset --hard a3902a1 \\回到最新tag
  28. # git checkout test
复制代码



作者: 哈尔基不搞基    时间: 2019-7-22 15:02
不知道持续集成具体是做什么呢?能否给举个实例,谢谢。

作者: Real_小T    时间: 2019-7-22 16:29
测试大当家 发表于 2019-7-22 14:58
如图
在hudson上配置的时候
这个execute shell

就是shell命令
作者: Real_小T    时间: 2019-7-22 16:31
aimer灬 发表于 2019-7-22 14:59
你好,我即将大学毕业是个小白,想从事软件测试这行,但是不知道从哪方面学起或者先打下什么基础,有什么书 ...

入行测试没有什么门槛,手工测试只要会写测试用例和知道几个主要的测试方法(例如等价类划分)就行,如果要走自动化,那就要学语言和工具(例如selenium),当然也可以做个一两年手工测试再转自动化也可以,这是市面上较普遍的职业规划,看你怎么选了
作者: Real_小T    时间: 2019-7-22 17:01
吃吃吃货 发表于 2019-7-22 14:59
我们公司是双版本运行的,所以master上打tag来区别出来
以下是我的一个修改旧版本例子,发现新增的v2.0 ...

你指的影响到v2.1具体表现在哪儿?
作者: Real_小T    时间: 2019-7-22 17:03
哈尔基不搞基 发表于 2019-7-22 15:02
不知道持续集成具体是做什么呢?能否给举个实例,谢谢。

比如说开发提交的代码能自动构建自动部署并自动测试,把这套流程做成一个持续化的事情,那么开发就可以只提交代码就行了
作者: 螺蛳粉    时间: 2019-7-23 14:00
目前在学习,请问嘉宾集成测试通常都有那些策略?这块正好想了解的详细下。谢谢!
作者: 知识就是力量    时间: 2019-7-23 14:06
集成测试的目的是测试系统的各个组成部分放在一起是否能够协调一致,在集成测试策略中要考虑的问题有哪些?求助!
作者: Real_小T    时间: 2019-7-24 11:00
螺蛳粉 发表于 2019-7-23 14:00
目前在学习,请问嘉宾集成测试通常都有那些策略?这块正好想了解的详细下。谢谢!

这个网上有很多,都比较教条式,一般来说就是顾名思义把功能模板各种组合起来测试,具体看产品的实际情况是啥,从功能的角度上考虑,如果要测试一个支付功能,那可以把下单也测试进去,形成一个下单+支付的支付流程,这就是一种简单的集成测试例子,如果时间和条件允许,可以把接口测试甚至是白盒测试加进去,确保产品需求质量更优
作者: Real_小T    时间: 2019-7-24 11:10
知识就是力量 发表于 2019-7-23 14:06
集成测试的目的是测试系统的各个组成部分放在一起是否能够协调一致,在集成测试策略中要考虑的问题有哪些? ...

一是要考虑当期需求或产品的实际情况,如果时间允许,可以测得深一点,范围可以广一点;二是要看被测需求是否是核心需求,如果比较核心,则需要加入其它的相关流程集成进去一起测试并增加异常测试来确保质量
作者: 水迹测试    时间: 2019-7-26 16:19
你好,我有个问题想问下。
strtust2 spring 集成测试问题 诡异的异常 不知道什么原因产生的
作者: 测试的弊端    时间: 2019-7-26 16:22
嘉宾您好,我想问下集成测试和接口测试的区别在哪里?
作者: Real_小T    时间: 2019-7-29 10:42
测试的弊端 发表于 2019-7-26 16:22
嘉宾您好,我想问下集成测试和接口测试的区别在哪里?

你好,接口测试测的只是接口别的不测,而集成测试是一个测试阶段或测试角度,可以测功能也可以测接口,只是把多个功能集成在一起测试
作者: 王者测试小兵    时间: 2019-7-30 12:00
Jenkins发送的html格式的邮件,无样式,求解,谢谢!
[attach]125891[/attach]
主要是指定的html文件到邮件中就没有样式了,其他样式是正常的,单独打开html文件是正常的
[attach]125892[/attach]


作者: Real_小T    时间: 2019-7-30 13:40
王者测试小兵 发表于 2019-7-30 12:00
Jenkins发送的html格式的邮件,无样式,求解,谢谢!

主要是指定的html文件到邮件中就没有样式了,其他样 ...

这个好像是样式被邮件给屏蔽了 我以前发报告去QQ邮箱时就是这样
作者: seventesting    时间: 2019-7-31 10:38
两个问题,麻烦请帮忙解答一下。
问题一:测试场景web端二维码,手机端扫描确认后登录成功。我只是想做web端后续的UI自动化,我要怎么度过这个登录呢?
问题二:小程序怎么做ui自动化?
作者: Real_小T    时间: 2019-7-31 11:59
seventesting 发表于 2019-7-31 10:38
两个问题,麻烦请帮忙解答一下。
问题一:测试场景web端二维码,手机端扫描确认后登录成功。我只是想做web ...

1.用token绕过登录吧
2.测微信小程序其实就是测手机客户端里的微信app里的web页面,那既然是app+web,那用appium就可以做到,配置项都配好,手机什么的都准备好(用模拟器有被微信封号的风险),用类似selenium的代码写就可以了,这里要提到一个原理,微信里的view是native的,进入小程序后则会多一个webview的view,在这个view里又会出现若干个windowHandles,数量取决于你在小程序里点进了多少个页面,所以切换上下文是比较关键的一点
作者: linxuzhu    时间: 2019-7-31 14:23
如何去组建测试团队
作者: linxuzhu    时间: 2019-7-31 14:29
怎么组建自己的软件测试团队
作者: Real_小T    时间: 2019-7-31 15:21
linxuzhu 发表于 2019-7-31 14:29
怎么组建自己的软件测试团队

先判断目前公司的产品和需求量是如何,一般来讲如何一直有更新迭代的话,2-3人的系统测试人员是至少的,然后可以考虑加入自动化测试,一般1-2名,测试领导要提升测试在公司的话语权,合理分配测试任务和懂得“甩锅”,测试用例、测试方案、测试报告以及后来的测试脚本都要沉淀下来,等等等等。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2