• #7 楼 @chenhengjie123 另外这块我觉得和开发的规范有关系,如果一些返回字段实际是表示相同内容的 (业务上的意义),而这些字段名又都不同,传这个上下文感觉是会啰嗦的。

  • #5 楼 @chenhengjie123 目前这块做的不太好,后续需要放不少精力做这个。目前已经做的一些是这样的:

    • 数据创建的时候根据上下问去再造点数据,比如说有些测试可能是这样的测试用例说一个已经有过订单的人,这个时候其实用例里面应该说不是具体的一个人,而是满足条件的这个人,所以在 Excel 里面其实是放有过订单的这个类型,然后在用一段 sql 去获取满足条件这样的人,那么如果一般情况时这样的话,自己写代码的话可能就是先创建个类在去执行一段 sql 去取值,然后再赋值给这个人,我现在做的是,创建数据类是通过一个工厂方式去创建的,然后这些根据一些初始化的内容获得的东西,都会放在 beanPostConstruction 中去实现,这样 Excel 里面填写一些关键数据,然后通过这个 DataFactory 去创建 JAVA Bean 的时候会自动运行 beanPostConstruction 里面的东西,这样可以少写一些代码

    -还有一种就是几个 API 调用之后,有些内容需要从前一个 API 获取,再给第二个或者第三个 API,这个还没有实现的很好
    我自己大体的思路就是把 API 的返回都放到一个结果集里面,一个 MAP 里面,然后在根据一些传入的表达式来获取这些值,再来传递,不过还没有完全实现出来,一直没有想的太清楚这块,需要自己在写些代码试试

  • #2 楼 @seveniruby 代码生成其实已经做好了.如果有 HAR 就不用去写那个描述文件了,会根据 HAR 自己生成,如果接口还没有开发完成还没有实际使用过,这种情况下就只好自己去写描述文件了. 然后填写测试数据来做测试用例设计了。理想情况下 (按照需求说明文档的规范做的),开发好了,接口自动化测试也可以跑起来了。不过代码确实需要再精简,要更少代码更少代码。

  • 不是太明白你说的二层嵌套指的是什么?你是说你在类级别上面注解了@Test,然后在方法级别再注解@Test吗?或者你说的是 Assert 的状态?

  • 删除 .m2 下面的 selenium,重新再更新一些 MAVEN 试试

  • 做这个需要花多久时间呀?

  • 设置到 testng 的 xml 中:

    <suite name="回归测试">
        <listeners>
            <listener class-name="RetryListener" /> 
        </listeners>
    </suite>
    

    错的地方应该是这个:

    retryAnalyzer=RetryListener.class, 这个应该是不对的他指的是retryAnalyzer应该是TestngRetry这个类
    

    看一下如下的代码:

    IRetryAnalyzer retry = annotation.getRetryAnalyzer();  //获取在test注解里面配置的retryAnalyzer的类,注意不是监听器
            if(retry == null){
                annotation.setRetryAnalyzer(TestngRetry.class);
            }
    

    监听器需要在 testng 文件中加

  • 设置到 xml 里面就是针对整个类

  • 还是更喜欢注解的,写在不同地方怎么查看都不爽

  • 其实我觉得有的时候领导不可理喻的,只要想想常识就觉得测试对质量全权负责是多么荒唐的事情。让一个组织里面相同级别工资最低的人,负责可能是产品最重要的事情 - 质量,天底下有这么便宜的事情吗????如果要让测试负责质量,那么测试应该什么都可以管才对,让写单元测试写单元测试,让写文档写文档,让干什么干什么。。。。。。。。,这才叫负责质量,质量几乎包含了全部,你对质量负责,你就对全部负责,所以你就有全部的权利。。。。。。。。。。,不过要是真这样了,测试还叫测试吗?有谁能干这个事情,哈哈,一通胡说的话

  • 俩个问题请教:

    1. 对于重复元素的定位,怎样精确定位
    2. expectation 怎么写

    这两个问题我来回答一下:

    1. 重复元素的定位,目前的处理是这样的,但是不一定可以覆盖大部分的情况 由于一般页面和业务流程有关的情况都会对应一个数据层的元素,目前公司使用 angular js 所以和数据层的绑定其实是很清晰的, 所以主要在 xpath 中加上 not(contains(@style,'display=none;')),这样虽然是重复元素,但是由于加了显示不显示的判断,其实在单个页面上总是唯一的了,但是这个可能和开发的实现紧密相关
    2. expectation 的话只能自己写了。
    1. 关于存 source 文件主要是可以一个页面片段一个页面片段去组装,另外有些页面源码在查看页面源码的时候不能完全看到 2.页面变了肯定要改的,如果小改动就不需要去重新生成了,代码都生成好了就在代码里面改

    我感觉好像很多人担心页面改了会怎么样,我怎么觉得这其实不是什么问题,因为改了就相应的改一下,关键其实如果遇到改动,貌似没有什么很好的解决方案可以让测试代码完全不改。有些情况下可能定位可以写好一点比如是针对一些特定的属性或者 css,其他我感觉这个问题无解,而且不是什么问题,开发代码改了,测试代码也改貌似挺合理的。我个人的理解,可能太肤浅了。

  • 多谢,已修改.繁复,怎么说呢,就是用的人觉得有点复杂. 所以我不知道其他公司的框架是怎么样用的。

  • 应该是直接用 sendkey 文件路径就可以了