如何进行一个Web项目的UI自动化测试,首先需要建立一个自动化测试团队。理想情况下,该团队由四个人组成,即测试和开发工程师、中高级自动化测试工程师和两名初级自动化工程师。在非理想情况下,可能只需要一个人。

(1)测试开发:

  • 基础答案:自动化框架的构建,确定自动化框架的设计模式,第三方代码工具的封装,中间公共模块的设计和调用,测试用例和测试套件的管理和执行,测试报告和测试结果的输出(文件输出和邮件通知)。
  • 可选高级:如果可能的话,需要搭建持续集成服务器(CI,Continuous Integration Server)的环境,一个用于持续交付和自动化的冒烟测试等。
  • 基本要求:实施自动化解决方案的经验、开发背景和持续集成背景等。

(2)中高级自动化测试工程师:

配合测试开发人员实施测试框架的构建。主要负责中间公共模块的实现和实例化,以及一些疑难复杂的自动化用例脚本的编写和调试。

  • 基本要求:有参与过自动化方案的建设、脚本编写经验丰富、会代码调试、懂Web测试等。

(3)初级自动化测试工程师:

根据中间公共模块的设计,实例化公共模块和方法组合,实现用例脚本的自动编写。

  • 基本要求:有计算机编程思维、有代码经验、可以读懂脚本和HTML等

(4)若只有一个人:

首先,可以实现自动化用例的维护和执行。在此基础上,不断提取和实现公共模块的设计和测试报告的生成。通过经验的积累和后续人员的补充,要尽快做好自动化框架的建设。

技术选择:

Selenium WebDriver、Python(unittest) Java(JUnit)、CI Server

技术方案:

选择 Python + Selenium 的技术方案。

首先,技术工具是免费的,Python的工具是PyCharm社区版,Selenium的WebDriver是开源工具。使用简洁的Python语言进行自动化测试更加实用,在学习成本、学习时间和优势方面都有优势。

另外Python自带的unittest单元测试框架可以很方便的实现自动化用例的设计和执行以及自动化用例套件的管理等任务。Python是纯面向对象的语言,后续也可以过渡到Java + Selenium进行更加丰富的自动化测试。

此外,可以选择Jenkins作为持续集成服务器,配合Python+Selenium的方案进行自动化冒烟测试。

适合自动化的项目模块:

1、任务测试明确,不会频繁变动

2、每日构建后的测试验证

3、比较频繁地回归测试

4、软件系统界面稳定,变动少

5、需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务

6、软件维护周期长

7、项目进度压力不太大

8、被测软件系统开发比较规范,能够保证系统的可测试性

9、具备大量的自动化测试平台

10、测试人员具备较强的编程能力

硬件:

硬件的要求不高,主要需要独立的测试环境。另外测试人员用的电脑最好是Windows桌面操作系统,需要安装Firefox浏览器,避免47.0的最新版本。测试人员最好也使用Chrome浏览器辅助进行Web元素的定位。

01

Selenium 学习总结

Selenium IDE (火狐的插件)

  • 录制局部脚本
  • 修改编辑脚本(插入命令、注释)
  • 3导出脚本(支持 C#、Java、Python、Ruby)

单元测试框架

  • C# : NUnit
  • Java: JUnit | TestNG
  • Python:unittest
  • Ruby:test-unit

02

学习研究 WebDriver

Python + Selenium WebDriver

01

搭建环境步骤

  • 安装 python3.x (windows xp 不支持 python3.5+)
  • 设置环境变量 path(安装的时候也可以解决 勾上 add python.ext to path)
  • 安装Selenium用pip命令安装 pip install -U selenium

有无问题?

  • 路径,pip可能定位不到,pip也可能定位到别的文件夹(perl)

方案:cd c:\python34\scripts

  • 外网ip问题交换机的原因,局域网里面是同一个ip,造成安装超时
  • 火狐的版本 46.0以及以下
  • windows 7 x64以上的系统,需要用管理员模式运行cmd,否则会安装失败

02

普通的使用

定位方式

by id, name, class_name, tag_name, css_selector, xpath, link_text, partial_link_text

主要用的是:

id,name, css_selector, xpath, link_text

鼠标的操作

  • 定位的问题:有无问题?

a

f1 = find_element_by_css_selector(frame)

switch_to.frame(f1)

b s1 = find_element_by_css_selector(select) ss1 = Select(s1) ss1.select_by_index(0) ss1.select_by_value("人事部") c 编码问题 utf-8 d 时间等待问题 sleep(5) 单元测试框架:unittest 解决了什么问题? unittest.TestCase 前置条件 清理 测试过程步骤 断言 assertEqual(期望值, 实际结果, 错误提示) 运行测试 test_开头的方法 unittest.TestSuite addTest(xxx("test_batch_login")) 自定义的添加测试用例,并执行 unittest.TextTestRunner run(suite) 执行创建并维护好的测试套件 test_runner test_suite test_case 测试运行器 测试套件 测试用例 模块化操作 面向对象的实践: 编写一个类,类里面描述公共的方法 实例化这个类,调用这个类的方法 有无问题? 类的构造方法,需要传递 webdriver.Firefox()self.common = RanzhiCommon(self.browser, self.base_url) 数据驱动测试‍ 读取csv,循环每一行数据进行操作 读取MySQL,用例存到MySQL中 中文编码的问题。 coding="utf-8" 读csv的时候,添加 encoding='utf-8' csv.reader(open("xxx.csv", "r", -1, encoding="utf-8") 循环放到最外层 文件路径在控制台读取不到的问题,需要用绝对路径来指向文件 封装WebDriver‍ 避免第三方代码的威胁,防止大批量修改测试用例 节约人力的成本(如果封装以后,不需要每个自动化测试工程师都会WebDriver) 标准化自动化用例的操作,只需要调用公共的标准模块就好 以上就是关于如何开展Web项目的UI自动化测试的流程以及小组成员的选用。希望对你有帮助,欢迎点赞评论,想要的小伙伴可以关注我点击链接找我获取哦!

阿里疯传,手把手教你如何从0开始开展UI自动化测试?相关推荐

  1. 手把手教你如何从0开始开展UI自动化测试

    如何进行一个Web项目的UI自动化测试,首先需要建立一个自动化测试团队.理想情况下,该团队由四个人组成,即测试和开发工程师.中高级自动化测试工程师和两名初级自动化工程师.在非理想情况下,可能只需要一个 ...

  2. 手把手教你搭建firefox火狐浏览器下的自动化测试环境

    自动化测试是时代趋势,因此很多测试人员开始研究自动化测试,web自动化测试化测试并不难,但是很多人都是被挡在了环境搭建这一步,后面学习激情全无,这里,我来手把手教大家搭建火狐浏览器下的自动化测试环境. ...

  3. 阿里疯传!Python+Tableau+Excel数分教程(附内部资源)

    "大数据"时代,数据分析岗位需求逐步增多,薪资也从最初的月薪1W到月薪5W. 不过从招聘网站上可以看出,高薪行业对数据分析能力要求也越来越严格,尤其是字节.阿里等大厂. 15 年, ...

  4. 阿里P7大牛手把手教你!mysql数据库应用案例教程

    四面阿里 面试岗位是研发工程师,直接找蚂蚁金服的大佬进行内推,参与了阿里巴巴中间件部门的提前批面试,一共经历了四次面试,拿到了口头offer. 一面: 自我介绍 项目中做了什么,难点呢. Java的线 ...

  5. 阿里云专家手把手教你重塑 IT 架构!

    进入21世纪以来,我们见证了企业分布式应用架构从SOA(Service-Oriented Architecture)到微服务架构,再到云原生应用架构的演化. 为了说明企业架构演化背后的思考,我们先谈一 ...

  6. 阿里P8大牛手把手教你!15个经典面试问题及回答思路,全套教学资料

    缘起 随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑.快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生.如果没有插件化技术,美团. ...

  7. 阿里P7大佬手把手教你!腾讯团队实力打造flutter入门教程,系列篇

    前言 文章篇幅较长,建议耐心食用,相信对你有帮助.码字不易,如果有误,欢迎指出. 前部分是面试经历,后部分是附带的问题笔记/推荐回答/书籍. 我的微信小号有一组特殊的朋友.他们从 CSDN上看到我之前 ...

  8. 阿里P7大牛手把手教你!一眼就能看懂的Android自学手册,真香!

    前言 曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作.这种观点可能是很多Android开发者最开始入行的原因之一. 在工作初期,工作主要是按照业务需求实 ...

  9. 【Java进阶营】阿里架构师手把手教你如何简单快捷地构建Spring应用

    一.Spring介绍 1.1 SpringBoot简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些 ...

最新文章

  1. 爱立信华为MWC展前叫阵:5G成重头戏
  2. JavaScript在发送ajax请求时,URL域名地址是使用绝对地址还是相对地址?什么是浏览器跨域访问操作,js如何实现?
  3. 文本编辑器创建工具栏
  4. Oracle触发器(trigger):一般用法
  5. PHP100视频教程2012版解压密码
  6. Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
  7. 计算机上配置的网卡实际上是,()计算机上配置的网卡,实质上是_ ___。
  8. 大数据之-Hadoop之HDFS_读数据流程_原理篇---大数据之hadoop工作笔记0069
  9. win10java记事本运行_win10系统制作java文本的操作方法
  10. 30个值得关注的Vue开源项目
  11. mysql忘记root密码怎么办,几个简单操作步骤找回mysql密码
  12. PLC编程全科班+人机界面编程+电机+变频器通信培训
  13. Python渗透测试工具合集
  14. 如何解决hash冲突,ThreadLocal如何解决哈希冲突
  15. word封面下划线对齐
  16. Android日期类组件学习
  17. Linux参考资料名称,Linux系统管理员必备参考资料下载汇总
  18. Virtual Box 打开.vmdk文件
  19. VSCode完美卸载
  20. 人工智能(AI)如何彻底改变项目管理

热门文章

  1. linux 类型排序,Linux命令之排序命令sort使用实例
  2. 用polt3画曲面_用SolidWorks建模一个:防滑板曲面造型
  3. R语言使用DALEX包的model_performance函数对caret包生成的多个算法模型进行残差分布分析并使用箱图进行残差分布的可视化
  4. pandas获取dataframe中索引值最大值所在的数据行(get dataframe row of max index value)
  5. R语言dplyr包使用bind_rows函数纵向合并两个dataframe(行生长)、使用bind_cols函数横向合并两个dataframe(列生长)
  6. R语言使用caret包对GBM模型参数调优(自定义调优的评估指标,例如ROC指标):抽取预测标签及类概率、抽样ROC的指标并绘制密度图
  7. fsl线性配准介绍+核磁共振影像数据处理
  8. R构建鲁棒回归模型(Robust Regression)
  9. 使用opencv dnn 模块调用darknet模型时候出错,不支持relu激活函数
  10. Jabba: hybrid error correction for long sequencing reads using maximal exact matches机译:Jabba:使用最大精