(一)自动化准备

说明:本文主要记录了基于公司现有项目(一个电子商务平台),从0开始实现UI自动化的历程。从准备阶段,部分内容直接省略了基础知识,一切以最终做成自动化项目为目标,难免会有晦涩之处。文章主要用于记录过程,翻阅回顾。如有记录出错,描述晦涩之处,望读者能及时指出,一起进行讨论交流,以免误导他人。

1 所使用工具的简单介绍

1.java + selenium WebDriver:用于脚本的编写;

2.TestNG:测试框架,用于结构化用例,生成测试报告;

3.log4j2:用于生成日志;

4.arrow插件:用于失败用例的重跑;

5.chrome浏览器;

2 提前安装 jdk1.8以上版本、eclipse、chrome

3 在线安装TestNG

1.打开eclipse,选择菜单【help】->【Install New Software】;

2.填写如下内容

Name:TestNG

Location:http://beust.com/eclipse

3.等待出现插件列表,选择TestNG,一路NEXT到Finish,之后重启eclipse完成安装;

4 在线安装PropertiesEditor插件

PropertiesEditor是eclipse的properties插件,用于将ACSII码转化为中文显示。在.properties文件中不能输入、显示中文,用该插件可以输入、显示中文。

注意:安装成功后,需要对eclipse编码设置为utf-8,否则仍不能显示中文.

1.打开eclipse,选择菜单【help】->【Install New Software】;

2.填写以下内容

Name:PropertiesEditor

Location:http://propedit.sourceforge.jp/eclipse/updates/

3.等待出现插件列表,选择PropertiesEditor,一路NEXT到Finish,之后重启eclipse完成安装;

5 提前下载的内容

1.1 client-combined-3.11.0.jar

1.2 selenium-sever-standalone-3.11.0.jar

1.3 log4j-api-2.11.0.jar

1.4 log4j-core-2.11.0.jar

1.5 webdriver

注意:webdriver需要与浏览器版本对应,推荐使用chrome浏览器和chromeDriver

chrome与chromeDriver版本对应表:http://chromedriver.storage.googleapis.com/2.37/notes.txt

chromeDriver各版本下载链接:http://chromedriver.storage.googleapis.com/index.html

在写本文时,当前使用chrome v65.0版本,chromeDriver 2.36_win64版本

jdk、eclipse、chrome请自行下载,其他下载内容(chromeDriver、jar包)可通过以下链接:

链接:https://pan.baidu.com/s/17VUiF9OAYf89hiaHco0HNw 密码:a7a1

6 创建java Project

6.1 创建Java Project

1.打开eclipse,选择菜单【file】->【new】->【Java Project】;

2.【Project Name】命名为SeleniumTest;

6.2 添加依赖jar包,构建路径

1.右击项目名称,【new】->【Floder】,【Floder Name】填写为lib;

2.lib文件夹主要存放依赖的jar包;

3.将上述jar包复制到lib文件夹;

4.全选jar包,右击,Build Path -> Add to Build Path;

6.3 添加ChromeDriver(浏览器驱动)

项目中创建文件夹res,将chromeDriver复制到res文件夹

6.4 添加TestNG配置文件

右击项目名称,【TestNG】->【convert to TestNG】,出现弹窗如下图,直接点击【Finish】;

6.5 添加TestNG依赖

右击项目名称,Build Path -> Add Libraries,出现弹窗如下图,选择【TestNG】->【Next】->【Finish】;

6.6 配置测试结果输出路径

1.选择菜单【window】->【preferences】(首选项,关于eclipse的基本配置都在这里)

2.选择【TestNG】,在【Output dictionary】处填写”\result\test-output“(配置测试结果输出路径,每个项目的测试结果都输出在该项目的result/test-output路径下)

6.7 设置编码格式为UTF-8(非必要)

选择菜单【window】->【preferences】,选择【General】->【Workspace】,选择编码格式为UTF-8

6.8 创建package & class

创建new Package,创建new Class,此时项目结构如下图

建议:

1.测试类的名称不要用Test(会与TestNG注解冲突),建议使用Test_1_OpenWindow、Test_2_Click等,类名中包含序号和功能;

2.包名建议用com.公司名/个人英文名.testcases;

6.9 修改TestNG配置文件

在test标签内,添加classes标签、class标签,如下图

class标签的name属性,是要执行的测试文件路径

7.试运行

现在基本的环境和依赖文件已经配置完成,我们可以来试一下TestNG是怎样执行测试方法的。

1.首先,在Test_1_OpenWindow类中创建方法,输出Hello World;

2.之后,添加@Test注解,并导入相应的依赖类(org.testng.annotations.Test);

3.右击xml文件,【Run As】->【TestNG Suite】;

4.此时,可以在控制台看到,Hello World正常输出,并显示出执行了1条用例,失败0条,跳过0条;

5.文件夹中打开SeleniumTest/result/test-output/index.html,同样可以查看测试运行结果;

注意:在eclipse里面F5刷新一下,就可以看到项目组的result文件夹了

8 关于UI自动化

1.UI自动化的本质就是模拟人工操作。从根本上来说,UI自动化仅包括2个动作:【获取元素】、【操作元素】。

2.我们的测试过程基本是建立在对页面元素的点击、输入、选择等【操作】之上,对结果进行判断。

3.包括我们找到、辨认出要操作的元素,对测试结果进行判断,实质上都是【获取元素】。

4.我们的点击、输入、选择等操作,归纳起来就是【操作元素】。

5.综上,UI自动化并不难,只要学会【获取元素】,之后针对各种元素,学会其【操作】方法,接下来就可以设计用例了。

Java+Selenium 3.x 实现Web自动化 - 1.自动化准备的更多相关文章

  1. Java+Selenium 3.x 实现Web自动化 - Maven打包TestNG,利用jenkins执行测试

    1. Jenkins本地执行测试 or 服务器端执行测试 测试代码计划通过jenkins执行时,通过网上查询各种教程,大多数为本地执行测试,由此可见,本地执行是大多数人的选择. 经过探讨,最终决定采用 ...

  2. Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告

    一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...

  3. Java&Selenium借助AutoIt 实现非Input类型自动化上传文件

    通常情况下实现自动化上传文件,都是通过sendKeys函数直接将文件全路径传给页面空间就能完成,然而这种情况只能对Input类型的控件有效,对于非Input类型的控件可以借助AutoIt来完成 下载地 ...

  4. java+selenium+testNG+excel 实现 web 网页的自动化测试

    webdriver的关键字从excel读取,这样测试人员只需要在excel中填写相关用例即可 前端微站和后台系统的用例可整合在同一excel中,这样可实现前端与后台的闭循环测试 除了一些基本的校验规则 ...

  5. Electorn(桌面应用)自动化测试之Java+selenium实战例子

    基于electorn的桌面应用,网上相关资料较少.所有记录一下.使用java+selenium+testng对该类型应用的自动化测试方法. 代码样例 package com.contract.web. ...

  6. 《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)

    1.简介 在使用appium写app自动化的时候介绍toast的相关元素的定位,在Web UI测试过程中,也经常遇到一些toast,那么这个toast我们这边如何进行测试呢?今天宏哥就分两篇介绍一下. ...

  7. java+selenium自动化脚本编写

    实训项目:创盟后台管理,页面自动化脚本编写 使用工具:java+selenium 1)java+selenium环境搭建文档 2)创盟项目后台管理系统链接 java+selenium环境搭建 一.Se ...

  8. Java+selenium+Firefox/ IE/ Chrome主流浏览器自动化环境搭建

    一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodrive ...

  9. windiows下搭建python+selenium+unittest+Chrome的Web自动化环境

    一.selenium.unittest概念 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测试,并且 ...

随机推荐

  1. viewsate用法

    ViewState["名称"]="ssss";直接赋值取值只能在同一个页面使用, 离开页面就会失效

  2. js 构造函数创建钟表

    翻出来之前的一些效果,觉得这个时钟还挺好玩的就写出来共大家分享: HTML代码如下: <div id="box"> </div> 当前盒子用于插入钟表内容: ...

  3. mybatis实现最简单的增删改查

    1.数据库设计 2.项目结构(针对User不用管Blogger) User.java package com.yunqing.mybatis.bean; public class User { pri ...

  4. 浅谈sql之连接查询

    SQL之连接查询 一.连接查询的分类 sql中将连接查询分成四类: 内链接 外连接 左外连接 右外连接 自然连接 交叉连接 二.连接查询的分类 数据库表如下: 1.学生表 2.老师表 3.班级表 表用 ...

  5. Centos7 中使用Supervisor守护进程

    转:https://www.cnblogs.com/qmhuang/p/8196132.html 配置supervisor实现进程守护 1.安装supervisor yum install Super ...

  6. heatmap for arcgisjsapi

    在arcgis for js api 环境下使用heatmap插件. 由于最新的heatmap没有提供 for arcgisjsapi  插件,懒得研究新版本代码,所以这里用的还是老版本的heatma ...

  7. VC MFC工具栏(CToolBar)控件(转)

    工具栏 工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建, ...

  8. RabbitMQ + topic发送消息+python

    接口使用两个queue监听信息,且有两个测试环境,所以需要向mq中发送测试数据: python使用pika包:Pika is a RabbitMQ (AMQP-0-9-1) client librar ...

  9. 课时49.非input标签(掌握)

    1.select标签(下拉列表) 什么是下拉列表? 这就是下拉列表 作用: 用于定义下拉列表 格式: <select> <option>列表数据</option> ...

  10. 浅析OC语言

    学习一门开发语言,首先要掌握的它的基本语法,这可能几天就能学会,但如果要融会贯通,就得去学习这门语言的框架和一些库,再结合一些项目的应用,这可能需要花几年的时间. OC是C语言的一个超集,是一门面向对 ...