Selenium java+selenium 自动化测试

jc · November 16, 2020 · Last by jc replied at November 17, 2020 · 1009 hits

  在项目上使用自动化测试,是为了跑主流程的回归测试,提高测试效率,在每个测试版本中把主要的精力放在发版内容新增的需求中;

  根据项目的功能模块,把业务主流程和使用频率高的功能抽取出来进行自动化测试,作为发版前的主流程回归测试辅助作用;

  大致的流程是:

    1、先做po设计,把最原始的脚本重构封装并参数化,初步设想,base层,element定位层,handle层,business层,最后是testcase层;

    base层,用于传入browser(浏览器的选择,便于以后扩展兼容性测试)和driver的基本方法(findElement,url的获取,frame的切换,窗口放大);

    element定位层,用于各业务page中元素的获取封装、By元素定位方式的封装、从配置文件根据key-value的形式读取元素定位方式和定位值的封装;

    handle操作层,用于根据页面模块page中的元素的操作封装;

    business业务层,用于业务逻辑操作;

    testcase层,用于组装case,输入测试数据和断言判断;

    2、建成maven工程,调用第三方的jar优化,实现日志收集,TestNG的使用,测试报告的生成以及jenkins的配置;

   下面每层贴部分的典型代码展示:

配置文件内容:

浏览器选择:

driver基本方法重新封装:

读取配置文件内容,By封装

element定位层:

handle操作层:

business业务操作层:

testcase层:

共收到 13 条回复 时间 点赞

图挂了

jc #2 · November 16, 2020 作者
娃哈哈 回复

显示看不到?我这边看自己的文章是正常,这么诡异

element定位层太重复了,几千个标签就要写几千个方法,这写的下去?

需要加大产出才能得到更好的投入产出比。故需覆盖尽可能多的流程,而不仅仅是业务主流程和使用频率高的功能点。

最近也在做web UI自动化,整体思路跟楼主差不多;
**主要差别是在element定位层与handle操作层的区分上;
当前定位元素在我看来无非两种,直接定位(id,name)与间接定位(xpath,css)。
=》 所有元素定位我就只使用了id与xpath两种方式,完成可以满足需要。
=》 id与xpath的区别就是xpath是'//'开头的 =》 那element层就只需要写个元素定位就可以(至于是xpath还是id就让handle层判断一下就行了)

封装太多层了吧,后续难以维护啊

目测难以维护,后面的配置文件几千项,无法修改,当用例超过1000,页面改版3次之后,楼主就会放弃

哇,楼主 ,分享虽可贵,可别误导新同学啊

太繁琐的,基于PageFactory的模式去写的话,没必要把定位元素的东西放在配置文件里,这种后期维护会很麻烦,而且对于写的人来说,也不是很易用

你这么写很难维护的。。。

jc #11 · November 17, 2020 作者
韩将 回复

已经放弃维护😅

新手提问::以登入为例子,自动化测试只测试登入吗? 错误密码登入后会弹出提示框要不要加入自动化测试呢?

jc #13 · November 17, 2020 作者
战 神 回复

好的,仅做自己菜鸡的一些工作总结记录,也是在这社区内学习。

jc 关闭了讨论 17 Nov 11:45
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up