Web项目的UI自动化测试开展

对于如何开展一个Web项目的UI自动化测试,首先需要建立一个自动化测试的小组,小组理想状态下有4个人员,测试开发、中高级自动化测试工程师、2个初级自动化工程师;非理想的情况下,可能只需要一个人。

(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元素的定位。

Selenium 学习总结

Selenium IDE (火狐的插件)

1、录制局部脚本

2、修改编辑脚本(插入命令、注释)

3、导出脚本(支持 C#、Java、Python、Ruby)

单元测试框架

  C# : NUnit

  Java: JUnit | TestNG

  Python:unittest

  Ruby:test-unit

学习研究 WebDriver

Python + Selenium WebDriver

1、搭建环境步骤

  a 安装 python3.x (windows xp 不支持 python3.5+)

  b 设置环境变量 path(安装时候也可以解决 勾上 add python.ext to path)

  c 安装Selenium 用pip命令安装 pip install -U selenium

  有无问题?

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

  方案:cd c:\python34\scripts

  外网ip问题。交换机的原因,局域网里面是同一个ip,造成安装超时

       火狐的版本 46.0以及以下

       windows 7 x64以上的系统,需要用管理员模式运行cmd,否则会安装失败。

 2、普通的使用

  定位方式

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

  主要用的是:id,name, css_selector, xpath, link_text

  鼠标的操作

  定位的问题:

  有无问题?

  a <frame>

  f1 = find_element_by_css_selector(frame)

  switch_to.frame(f1)

  b <select>

  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

  测试运行器    测试套件     测试用例

  模块化操作

  面向对象的实践:

  1. 编写一个类,类里面描述公共的方法

  2. 实例化这个类,调用这个类的方法

  有无问题?

  类的构造方法,需要传递 webdriver.Firefox()

  self.common = RanzhiCommon(self.browser, self.base_url)

  数据驱动测试

  读取csv,循环每一行数据进行操作

  读取MySQL,用例存到MySQL中

  1. 中文编码的问题。

  # coding="utf-8"

  读csv的时候,添加 encoding='utf-8'

  csv.reader(open("xxx.csv", "r", -1, encoding="utf-8")

  2. 循环放到最外层

  3. 文件路径在控制台读取不到的问题,需要用绝对路径来指向文件

如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。 

封装WebDriver

  1、避免第三方代码的威胁,防止大批量修改测试用例

  2、节约人力的成本(如果封装以后,不需要每个自动化测试工程师都会WebDriver)

  3、标准化自动化用例的操作,只需要调用公共的标准模块就好。

以上就是关于如何开展Web项目的UI自动化测试的流程以及小组成员的选用。

以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356