• Cynthia🌸
    2018-07-30
    我曾经做过的一个自动化项目,整体代码实现方式与思路和这里介绍的不太一样。
    对业务流程也做了封装,但每一个封装都是以子用例的形式来做的,例如:
    从登录login到a业务到b业务再到c业务算是一条完整的用例
    而另一条用例是login a业务 x业务
    那么就封装一个子用例1为:login-a业务。

    但是没有做到a业务的单独封装。
    比如再来一个用例是:
    login a业务 b业务 y业务

    那么可以使用子用例1完成前面两个步骤,或者重新写一条子用例2:
    login a业务 b业务

    当然这个项目在其他的地方存在优势,所以沿用了一阵子。

    现在打算细细研究一下作者的思路。
    展开
    
     7
  • 图·美克尔
    2018-08-01
    代码自动生成会讲到吗?

    作者回复: 代码细节不会讲,只会讲基本的思路。

    
     4
  • subona
    2018-10-16
    老师有类似的实现源码供参考吗?伪代码看不懂具体该怎么实现
    
     3
  • Tall Giraffe
    2018-09-14
    老师,我不太清楚LoginFlowParameters这个业务流程参数类的作用是什么,可以解释一下吗。这处有点看不懂
    
     3
  • ll
    2018-07-31
    和老师的思路不谋而合,实际项目也用了基于业务流程封装的业务关键字,写测试用例过程非常灵活好用,功能变更只需要修改业务关键字内部结构,不改用例; 数据的实例化对象也超级好用,灵活改变数据,数据内容丰富多样。期待老师的测试数据准备的课程……
    
     2
  • 图·美克尔
    2018-07-30
    然后,对于每一个业务流程类,都会有相应的业务流程输入参数类与之一一对应。具体的步骤通常有这么几步:

    初始化一个业务流程输入参数类的实例;

    给这个实例赋值;

    用这个输入参数实例来初始化业务流程类的实例;

    执行这个业务流程实例。
    为啥不把这几步再封装一次作为一个业务步骤呢?比如就可以直接:login(username,passed)->search(name)->checkout(id)->logout.
    也便于自由组合成其他的业务流程。比如:login->view order->logout
    展开

    作者回复: 非常高质量的留言,你说的方法非常好,而且我们也曾经实际尝试了,和你说的完全一样的思路,但是最终我们放弃了,主要原因是技术上的实现难度有点大,我们需要知道哪些flow是可以衔接的,并且还要做到ide中可以自动提示,同时flow之间的测试数据传递写出来也会比较难看,还有就是两个flow之间在实际用例中经常需要插入很多额外的操作,而且由于我们后面基于BDD做了代码自动生成,所以我们没有采用全链的方式。

    
     2
  • 李真真
    2018-07-30
    在我自己学自动化测试的过程中,主要有三大疑问:1. 元素的有效定位方法
    2.断言如何做到全面性
    3.POM怎么颗粒化
    这些都没有固定的标准和方法,搞的有点无措。读了本篇,第三个问题就有了很清楚的一种参考方法啦。非常感谢老师!
    
     2
  • 口水窝
    2019-03-28
    继续打卡,还没做到深入GUI自动化封装的阶段,加油,先学习体系,在操作实践!
    
     1
  • sylan215
    2019-02-13
    1.上一篇我提到的 selenium 实现的 4 层实现,恰好和老师说的「业务流程」的层次性和逐层抽象的理念相吻合,看来从实际业务场景触发得出的结论是大同小异的;

    2.如果按「业务流程」的概念来解释我之前说的把登陆和退出操作实现在了第二层的函数层就很好理解了,因为登陆和退出操作不是完全固定的具有公共属性的原子操作,所以不能放到原子层,而登陆和实现又没有必要做成通用函数,所以按业务流程来说,也可以不放在函数实现层;

    3.总之,业务流程的理念对于颗粒度划分的解读就是「实用的就是最好的」。

    以上,欢迎关注公众号「sylan215」一起沟通交流。
    展开
    
     1
  • Allen
    2018-07-31
    公司的业务流程比较复杂,需要在接口层覆盖业务流程的自动化测试。最近正在设计接口自动化的测试方案,看了这篇文章,很有启发。

    作者回复: 能有收获就好,其实我后面还会介绍更好的办法,就是通过gui来捕捉后端的api调用列表,后面的文章会有具体例子,希望可以帮到你

    
     1
  • LIKE
    2019-11-21
    如果你的dao层用的mybatis,对这个参数实体就能很好理解了。
    老师关于业务流当中的输出参数,能做进一步讲解吗?谢谢
    
    
  • johnny
    2019-08-07
    经过反复阅读该篇文章和后面的测试数据准备篇。
    对于GUI自动化脚本封装方式可以概括为如下:
    GUI自动化脚本涉及到了三次封装
    1.引入页面对象进行第一次封装
    2.引入操作函数进行第二次封装
    3.引入业务流程进行第三次封装
    在具体实现方面,基于业务流程进行的第三次封装会涉及到和测试数据准备篇用到相似的技术-java的建造者设计模式。
    茹老师,我的理解正确吗?期待老师的回答
    展开
    
    
  • Geek_7d396d
    2019-05-14
    按照13章给的抽象模式:“XXXPage.YYYComponent.ZZZOpera... , 这里的YYYComponent 是指啥呢?

    
    
  • 后乐
    2019-05-09
    总结的很到位,很喜欢这种授人以渔的课程!学到了不少,得好好实践下~

    作者回复: 感谢支持,我一直反对直接教工具的使用,只有理解了背后的原理,才能做的更好

    
    
  • johnny
    2018-11-19
    第13节的内容能理解,我已经将伪代码实现了。但是这节的内容不好理解,老师可以给我发一个完整的示例吗(不是用伪代码描述的,是真正用java语言实现的代码示例)?简单的业务流程,只要能说明第14节内容就行。我的邮箱是cjnjk@163.com

    作者回复: 实际代码可能没法发,因为不来源,实在不好意思

    
    
  • 小老鼠
    2018-10-24
    如果某个用户场景别的测试用例肯定用不上,是否也需要封装,主要目的是便于阅读?
     1
    
  • 晶晶
    2018-09-27
    其实我觉得测试人员还是应该掌握面相对象设计思想才能更好的写出自动化测试工具,基础不打好,只能知其然而不能知其所以然。
    
    
  • 江鸟川
    2018-09-17
    做人用RF做界面自动化吗?感觉还是只是会个皮毛
    
    
  • Kuzaman
    2018-08-14
    精彩的文章,理清了思路,准备通用到接口测试中,把前一个响应的参数对全部抽取出来,做类似Java 里的get方法,方便下一个接口使用。期待与老师9月2号的见面。
    
    
  • Sunshine
    2018-08-03
    感谢老师讲解,现在脑子有了一个更清晰的思路

    作者回复: 能够有收获就是最好的

    
    
我们在线,来聊聊吧