05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
讲述:茹炳晟
时长14:37大小6.70M
单元测试的自动化技术
代码级集成测试的自动化技术
Web Service 测试的自动化技术
GUI 测试的自动化技术
总结
思考题
赞 32
提建议
精选留言(73)
- 康美之心 淇水之情2018-07-09Rest-assured是一个非常适合,非常好用的API开源测试框架,我已经在我们项目里基于Spring-boot,Rest-Assured,Ccucumber开发了一个标准通用的微服务API自动化测试框架,我们项目里的所有微服务API都可以基于框架快速高效的在各个测试环境无缝切换进行自动化测试,并且完全集成到了公司的CICD Jenkins平台,以前从开发到单元测试,FVT测试,UAT测试,回归测试到MTP需要3天左右时间的Size的Story,现在相同工作量Size的Story只需不到一天时间就可以全部完成,期间除了产品代码开发和少部分特殊数据的准备,部分新增用例的开发外,全部都是在Jenkins上自动完成。展开
作者回复: 厉害,非常棒的实践,我们也在做类似的事情,但是我们暂时没用cucumber。高手👍
共 7 条评论110 - 才子2018-08-14我们日常工作更多的是关注测试用例的自动执行,对于其他方面,如测试脚手架、相应判断和测试数据准备的自动化生成都没有关注。还是对于自动化的理解太片面了。 现在项目,由于组内没有统一的测试脚手架,每次新项目来时,很多精力用来制作脚手架。由于人员水平的不同,导致每个项目的测试脚手架设计水平不一,可读性差,重复率高,通用性差等问题。 我们利用python制作了一个api自动化测试平台,根据开发提供的swagger页面,自动抓取api接口,根据其中的参数类型,和设置的规则如输入参数的必须非必需,参数的等价类,边界值,参数间的依赖等自动生成用例。 对于预期响应,我们根据生成的正确用例,连续三次请求的返回值,取不变的字段作为预期响应。 对于需要依赖的接口,提供mock功能。 对于用例执行结果,自动生成html页面和一个通过率的返回值,用于ci/cd。 目前已在部门推广。 对我们测试现状的反思:没有真正理解自动化的概念,过去只是片面的认为用例执行的自动化就是自动化,也是为自动化而自动化。其实自动化贯穿了整个测试过程,从用例设计,数据准备,用例生成,响应判断,用例执行,执行结果分析,都包含了自动化的内容。现在devops的流行,让自动化的占据了更多的比重。个人认为自动化最重要的是思想,当现在宏观的角度看待项目,看待整个测试过程,自动化应该是我们工作的指导思想,就是通过一切手段高质量、高效率、低入驻成本的守护产品的质量。 测试主要精力放在用例设计和业务的理解上,自动化的实现只是一种手段,不能过于追求自动化实现,反而忽略了测试用例的设计,这样不仅本末倒置,而且失去了自动化的意义。展开48
- fekgih2018-07-10Postman也可以集成到cicd,通过Postman+newman+jenkins。在实际项目中使用过,非常方便。平常积累的测试数据,在Postman导出一个json文件,在另一个服务器部署newman(命令行纸执行Postman导出的json文件),然后直接在服务器是用newman工具一行命令就能执行测试并生成测试报告,这样很方便集成的cicd里。
作者回复: 非常棒的分享,我们以前也用过和你说的完全一样的方案,但是最终鉴于用例需要更多的灵活性,比如数据准备,更方便通用的assert等,所以我们最终还是选择了全代码的实现。👍
45 - 西海2018-07-09老师,可以谈谈Katalon Studio这个软件吗?国内使用的人很少,不知道国外使用的人多吗?
作者回复: Katalon Studio的确是个好东西,它结合了selenium和appium,而且提供了很简单易用的IDE环境,关键还支持录制和object spy,有点像uft的感觉,无论是资深的测试开发还是初级的自动化工程师,都能比较好的上手,但是这个工具比较新,目前国内的确好像没看到有人用,中文的资料非常少,再加上它天生不支持中文。但是我觉得好东西一定会发光的,我相信很快就会慢慢普及起开。另外一个就是这个版本更新现在非常快,基本每个月都会有版本发布,我个人还是看好的
33 - Cynthia🌸2018-07-09对于测试来说,并没有接触到代码级测试。经历过的公司,有的即使做了,也是由开发自行做单元测试或者代码评审之类。 其他的自动化技术,有做过gui和api的自动化测试。但是gui自动化测试呢,在产品更迭迅速的互联网公司,经常页面,产品逻辑有微小变化,大多数用例就要推倒重来,维护成本太高。
作者回复: 你说的太对了,相信很多人都会有你这种感觉,后面我讲gui测试的时候,会重点来看怎么缓解你说的问题
18 - 齐涛-道长2018-07-22我们采用robot framework+requestslibrary的方式来做API自动化测试。个人觉得比较适合团队编程能力不是太强的团队共 2 条评论8
- Geek_84a77e2018-07-09文章中提到了很多自动化生成,不管是单元测试还是GUI测试,都涉及了自动化生成,这个是代码实现的自动化工具么?后期会和我们分享吗?
作者回复: 这个并不是一个现成的工具,而是方法,很多项目都会自己开发这种工具,比如前段时间我就在做把postman的测试用例,就是json文件转换成代码
8 - 红娟2018-07-10回答问题,我所在的部门没有代码级别的测试,但是也是在努力过程中,现在是统一的环境编译,有静态代码扫描,推广自动化测试。对员工也是各种培训,有代码风格培训,有如何编写单元测试代码。 关于自动化测试,还是要回到目的上来,自动化测试是为了提高测试效率,节约成本。解放重复劳动。所以在工作的任意阶段,只要符合这些要求,都可以用自动化来做。
作者回复: 你说得非常对,一切都是经济利益导向的
7 - sylan2152019-02-121.单元测试我感觉很少公司能做到吧,目前国内还是偏功能为主,速度迭代,甚至允许带 bug 上线,这个单元测试的要求相悖,单元测试的发展趋势应该是和 Google 一样,开发成了质量保证的第一环; 2.代码级集成测试,这个怎么说,开发代码联调其实算这个类型,但是他们联调的时间点和关注点,好像仅仅是和功能相关,和质量无关; 3.Web Service 测试的话,对于 Web 端和服务端应该涉及的比较多,也是目前出现自动化框架最多的地方,如果按照前一篇文章提到的自动化的要求,这部分是最符合要求最可能实现的部分; 4.GUI 测试是目前大家最关注的,最关注是因为他是大家最想做的,最想做并不是说一定是最需要的,而是从感觉上来说,是最能体现自动化价值的,但是,他又恰恰是最不好做的,所有软件的 UI 各式各样,所有软件的 GUI 自动化问题可能又是千篇一律。 以上,欢迎沟通交流。展开7
- 阿甘2018-07-09目前公司用的是jmeter接口自动化初级阶段,想要更进阶的,跟着进步学习中
作者回复: 嗯嗯,我们也用jmeter
共 2 条评论6 - yiluo2018-07-09希望看到更多的讲解,关于用例框架代码和自动生成数据。谢谢6
- huahuan bigbrother2018-07-09我们团队在Response的自动化上花了很多功夫,但是目前来看还是有很多人工去输入要检验的字段值,检验这块如果不全面和不够自动化和易维护,结果就不可信,而且写测试用例起来也麻烦,导致很难全面取代手动测试的。6
- 一笑而泯2018-07-10自动生成response期望的想法不谋而合,我们也在做这方面的尝试,期待后面的课程详细介绍。
作者回复: 现在已经有工具直接支持了,不过好像不是开源的
5 - family2018-07-09很期待后续的具体讲解自动化
作者回复: 后面最先会讲的是GUI自动化
5 - 严晓东2018-08-28老师,请教几个问题。1,测试脚手架代码的自动化生成。这句可不可以理解成主要是测试框架生成的测试模板,比如Python的unittest的测试模板2.部分测试输入数据的自动化生成。这一点是测试人员自己写脚本生成,还是借助测试框架?能否举几个例子?谢谢4
- Sdylan2018-07-12系统测试这一块,对着代码的某个接口测试,实际测试过程中仅仅是根据开发编写的逻辑来验证是否流程ok,结果是否符合预期就可以了,实际很难全面去测试,因为成本很大,而且每次测试模块都会变,接口的业务功能复杂在一次测试过程中很难了解全面,很想了解下系统测试这一块该如何形成一个比较全面的测试框架呢?
作者回复: 往往接口测试是在单元测试完成后,当然有些也有不做单元测试而直接做接口测试的,理论上讲,接口测试关心的问题是接口的功能需求,而不用过多关注接口内部的覆盖率,但有时候也会具体代码覆盖率来指导用例设计。两者的边界不是太严格,所以我们往往往往会把这种测试称为灰盒测试,介于白盒和黑盒之间
4 - 云淡风轻2019-11-10有试过用jmeter+ant+Jenkins的接口自动化测试3
- Cynthia🌸2018-07-14重读一遍,写一下自己对本文整体的心得感受吧。 作者很好的梳理了软件开发不同阶段,对应的主流自动化测试技术。尤其是代码级测试的部分,相信不少公司这一块做的并不是十分完善,或者并不清楚应该怎样开展,从作者的文章中就能找到方向感了。 至于大部分小伙伴比较熟悉的接口测试和GUI测试,也梳理的特别清晰。使那些对自动化测试一知半解,或者只听说过几个自动化测试工具或者名词的小伙伴,看清楚了相对应的知识技能树,就不会在学习的道路上感到迷茫。展开4
- Nic辉少2018-07-09工作中暂无自动化测试方面的接触。打开新视野了。
作者回复: 有收获就好
3 - rh2019-05-30现在公司正在实行Selenium+Python自动化,主要是对主流程进行,后期还要进行接口自动化,希望在这里能学到有帮助的知识,有问题会留言,希望大神赐教…😃2