自动化测试——上航企业内训总结

随着互联网技术的发展,现在的软件系统需要处理的业务越来越复杂,而客户对于软件的需求变化也越来越快,这就要求我们软件从业人员快速响应客户需求。在互联网企业,微服务下的敏捷开发体系、自动化测试、智能运维体系都发展得如火如荼。在前几年也许传统软件行业的还在观望着,但是在devops火热的今天,不少的传统企业也都开始向互联网企业学习,引入devops、敏捷开发中的各种技术,以提高他们的开发效率。

上周六,芒果在上海航空工业(集团)有限公司进行了一次自动化测试培训。这次的培训,主要是针对于web ui自动化测试框架的学习。我和参加学习的测试人员主要针对以下几部分内容进行了深入学习:

01
web页面元素定位

也许一提到元素定位,你肯定会说不就是id、name、class name、link text、xpath、css这八种么。那你知道如何选择最快速有效的定位方式么?

在课堂上,我表达了一些我自己的看法,对于拥有id或者name属性的元素,我们尽可能选择id或者name进行定位。没有这些属性,我们可以考虑css定位。可能有人会更加喜欢xpath定位,但是css定位是Selenium官网的Document里极力推荐的定位方式,而不是xpath来定位元素,原因是css比xpath速度快,特别是在IE下面(IE没有自己的xpath解析器(Parser))。它比xpath更高效更准确更易编写,只是美中不足是根据页面文字时略有缺陷没有xpath直接。并且因为前端开发人员就是用css定位设置页面上每一个元素的样式,无论那个元素的位置有多复杂,他们能定位到,那我们使用css定位肯定也能非常精准的定位到页面元素。

当然因为现在前端架构的复杂性,或者是不规范性,我们总会发现元素定位会是困扰我们高效完成自动化测试代码的一大难点,所以元素定位不是那么简单就可以搞定的事。所以我在课堂上跟大家强调了一个定位元素的原则:我们想要定位某个或者某组元素,我们就上要找到一个合适的字符串,能够唯一的描述它。然后就是注意是否需要元素等待,窗口切换,iframe切换,弹窗等问题的处理了。

02
web页面元素操作

一旦定位元素正确,元素操作不再变成什么难事,因为现在的前端架构,我们的需要操作页面元素类型都是一定的,只要我们熟悉像输入框、富文本框、按钮、单选框、复选框、下拉列表等这些常用控件的操作就可以完成大部分web页面元素的操作。

而有一些页面元素,它是隐藏的,或者是有只读等属性的,我们可能没办法用一般的方式处理它,这个时候我们可以执行js代码来完成我们想要的操作。

比如12306的日期控件:

我们可以看到日期控件input标签由于readonly 属性,所以日期控件是不允许输入的,那么我们主要通过js来删除或者readonly制成否,这样可以直接允许输入。

1#通过js操作,首先定位到input日期标签,然后再次删除readonly属性
2js = r'document.getElementById("train_date").removeAttribute(\"readonly\");'
3driver.execute_script(js)
4
5#使用id定位input日期控件,并输入日期
6input_datetime =driver.find_element_by_id('train_date ')
7input_datetime.clear()
8input_datetime.send_keys("2019-01-15")
03
PO模式

“前端手一抖,自动化测试忙一宿”的故事相信大家都不陌生,由于前端代码的变化,导致UI自动化测试脚本变动大,维护变得困难也是有一些人鄙视UI自动化测试的原因。其实在芒果看来,软件系统的界面才是客户接触最多的,做好界面的功能测试是必须的;而大部分功能测试人员所做的重复性非常高的工作也是界面的,所以完成主要功能UI自动化是非常有必要的。

而对于页面的变动,我们可以采用PO模型(Page Object页面对象模型),来维护一组web页面元素对象库是一个非常好的方法。在PO下,每一个web页面都有对应的Page类,这些类帮我们维护好这个web页面的元素集和方法。这样能帮我们把业务流程跟页面元素进行分离,使得测试代码变得清晰而容易维护;也可以让我们更好的复用页面对象;当然更有效的命名方式,可以让我们知道所有能够操作页面元素的方法。

04
其他

当然当天的内容并不只有那么些,我们还一起讨论了接口测试,接口自动化,讨论了想要做好UI自动化我们对于前端的了解跟认识,甚至还吐槽了一下需要大大优化的前端代码。

最后简单的介绍一个上海航空工业(集团)有限公司:

上海航空工业(集团)有限公司(以下简称上航公司)系中国商飞公司全资子公司,企业注册资金29000万元。上航公司曾自主研制运-10大型客机、涡扇-8航空发动机。后与美国麦道公司合作,成功生产麦道-82/83、麦道-90等型号飞机。2008年4月,整建制划入中国商飞公司。2013年4月,进行职能调整,成为中国商飞基础能力中心。上航公司主要为中国商飞公司发展建设和科研生产提供专业化能力支持和综合性服务保障,承担信息化、审计、质量审核、标准化、工业工程、数据管理、产品安全与事件调查、情报、档案、科普展示等十大专业,房产经营、进出口代理、差旅服务、物业服务、产品配套等五类服务。

TestOps|测试运维

精益技术 赋能过程

(0)

相关推荐

  • 可以直播培训的企业内训系统

    企业的发展会涉及到方方面面的线上直播培训,包括:入职培训.部门培训.专业化技能培训.项目培训等等,而选择一个可以直播培训的企业内训系统就尤为重要,目前市面上可以选择的直播平台很多,但是专业的.适合企业 ...

  • 企业内训师培养,如何从“0”到“1”?

    为什么要培养企业内部培训师? 企业缺人才? 招不到合适的人? 人才培养效果不理想? 管理者能力不足? 绩效提升缓慢? 目前,很多企业受以上问题的困扰,面临人才发展障碍,究其原因,可以归结为以下三点: ...

  • 如何进行有效测试——四维图新企业内训总结

    在北京四维图新科技股份有限公司(以下简称:四维图新)的培训现场,我就和与会的测试人员就如何进行有效测试进入了深入探讨,具体主要针对以下几个问题: 1.有了快速构建体系为什么还是不能做到有效测试? 在稳 ...

  • 数字化转型转型什么-杭州企业内训小结

    没想到11月还能如此温暖,也没想到杭州的交付还能遇到5年前的学员,唯一尴尬的地方就是没有以前"帅"了,而她一如既往的美丽. 这次受到杭州某客户的邀请做了一次关于数字化转型为内容的交 ...

  • 企业内训直播平台应具备哪些功能?

    线下培训效率低下且培训成本较高,而企业内训直播就取代了线下培训. 那么企业内训直播有哪些功能点是契合线下培训的需求呢? 1.签到 经历过企业培训的人员都知道,在每一场培训开始之前,人们都是要签到的,这 ...

  • 企业内训系统源码是什么?包含哪些功能?

    "师傅领进门,修行靠个人."目前大部分企业培训,还是离不开"师徒制",学的快不快.精不精,全靠师傅如何教,徒弟如何学.这种培训方式,公司可能觉得比较扎实可靠,但 ...

  • 陕西乾翔健康科技股份有限公司第二次总部全体员工企业内训会

    公司的经营管理水平以及员工素质,是一家企业的核心竞争.想要团队意识整齐划一,经营管理能力有效提升,就需要企业通过内部训练进行培养. 8月14日下午四点,总部全体员工企业内训会在周六如约进行. 常务顾问 ...

  • 《如何成为优秀的企业内训师》PPT课件分享(25P)

    国内外无数成功企业的经验都告诉我们,欲建成一流企业,必先有一批一流的员工.而一流员工队伍的形成,又必须把好两个关口:招聘关和培训关.在招到合适的员工的基础上予以适当的培训可以使员工更加符合企业的要求, ...

  • 企业内训系列课件:50中层管理人员培训之执行力训练,系统全面

    为职场精英打造个人知识体系,升职加薪! 中层管理人员培训之执行力训练 如何拿到分享的源文件:请您关注.转发,然后私信本头条号"文米"2个字,按照操作流程,专人负责发送源文件给您.