如何用 Python 作自动化测试

1、Selenium 环境部署

1. window 环境部署

1.1 当前环境

Win10 64 位系统;Python3.6.2(官方已经更新到了 3.6.4)css

官方下载地址:https://www.python.org/downloadshtml

Selenium 3.4.3;谷歌 59。python

1.2 Python3 安装部署

Python 的安装接触编程语言中很简单的语言了。不须要繁琐的 JDK,也不须要 SDK。直接到官网下载,配置环境就成功了。web

首先到官网下载咱们须要的 Python3 版本:chrome

点进去直接下载:npm

1.3 配置环境变量编程

安装好以后,咱们就能够在文件夹看到咱们下载好的 Python 文件了。bootstrap

路径为: D:\python3.6.2。浏览器

如今咱们去配置环境变量吧。架构

回到桌面,同时按下 WIN+R 键,打开 “运行” 对话框,输入 sysdm.cpl,单击 “肯定” 按钮:

选择 “高级” 选项卡:

编辑当前路径:

到这里,咱们配置环境就已经完成了,可是仍是须要验证咱们是否成功安装的。按 WIN+R,打开 “运行” 对话框,咱们输入 cmd:

输入 python:

1.4 安装 Selenium

如今咱们就能够直接安装 Selenium 了,从新打开 cmd 窗口,输入:pip  查看是否存在 pip 命令:

若是不存在首先检查本身的环境变量是否配置正确了;第二检查 Python 文件夹下的 Scripts 文件夹下是否有 pip.exe 这个文件;若是这两步都没问题,就从新下载 python 文件。由于 pip 这个命令对咱们来讲是很是重要的。

接下来咱们安装 Selenium,在 cmd 窗口中输入:pip install selenium:

1.5 驱动下载

这个是不少新手都会碰到的问题。其实也不用担忧,由于 Selenium 驱动对不一样版本的浏览器也是不同的,因此不少人都会遇到这个问题了。

当前我使用的浏览器是谷歌浏览器。单击这里下载谷歌浏览器驱动。若是使用的火狐浏览器的,就须要先将浏览器版本降级了,因此我不推荐使用火狐浏览器。

咱们进去选择本身浏览器对应版本的驱动下载吧(http://npm.taobao.org/mirrors/chromedriver/):

上面两个驱动都是对谷歌 59 兼容的,下载完以后,咱们将下载的文件放在 Python 的根目录下就能够了。

 

 

 接下来测试本身的 Selenium 是否能够启动浏览器了,在 cmd 中输入 Python:

 

而后输入 from selenium import webdriver webdriver.Charome()

 

 看到启动浏览器,咱们就已经成功安装 Selenium 了 。

1.6  Pycharm 安装

官方下载地址请单击这里

安装完以后,咱们须要输入注册码:选择 license,输入 http://idea.lanyus.com/ 这个地址,点击 OK 就能够了。若是没有输入,也不用担忧,进入 pycharm 以后,点击 Help-Register- 选择 license:

这样也是能够的。如今咱们已经把前面所须要的条件都完成了。

选择咱们存放的路径和项目命名:

咱们重温编程语言经典的输出:

咱们能够点击上面的 Run 或者使用快捷键 Shift+Ctrl+F10 能够直接看到结果了:

看到的结果,咱们就成功了:

2、Selenium 的定位元素操做
咱们在网上看到的不少方法,都是使用 Firefox 中的插件 firebug 工具对元素进行定位的,可是如今 Firefox 已经再也不对 firebug 进行维护了,也就是 firebug 也即将须要从市场淘汰出去了。

因此,咱们会在这里使用的是谷歌的页面定位的,其实也就很简单的事。咱们经过在页面中按 F12 查看页面就的元素,找到咱们须要的元素,点击右击就能够看到咱们须要定位的操做了。

Selenium 给咱们提供了 8 种的定位元素方法,咱们拿百度首页做为例子。

2.1 find_element_by_id()

咱们能够直接经过英文意思理解这个方法,经过 ID 查找元素,也就是使用页面里的 id 属性:id = “”。咱们先定位百度搜索框,在搜索框里面输入咱们要查找的内容。

2.2 find_element_by_name()

这个定位的方法是经过查找名字的方式,对元素进行定位。咱们在检查元素的时候看到 name=””,就可使用这个方法了。

2.3 find_elements_by_class_name()

这个定位的方法是经过查找 class_name 的方式对元素进行定位,在检查元素的时候看到 class=””,就可使用这个方法了。

2.4 find_element_by_tag_name()
这个定位的方法是经过元素的标签属性对元素进行定位,在检查元素的时候查看元素的最前面的 input,可是这个定位方式有个很差的地方在于不少页面都有一样的标签存在,因此咱们定位的时候会很麻烦。

因此,这个方法咱们不推荐使用。这个方法也是仅供参考。

其实是会报错的,由于 selenium 在定位的时候不清楚咱们要找的是哪一个元素。

咱们若是必定要用这个方法的话,咱们就须要清楚,咱们定位的标签的精准位置了。

2.5 find_element_by_link_text()

这个定位方式是经过查找页面的文本信息进行定位。也就是咱们看到页面的信息去定位,例如:咱们须要定位百度首页的登陆按钮,并点击它。

2.6 find_element_by_partial_link_text()

这个方法的定位方式就是经过模糊文本信息查找元素,有些时候,咱们但愿定位到一个文本比较长的元素时,咱们就能够经过这个方法去定位。

例如:定位百度首页页脚下的 “使用百度前必读”,咱们是输入 “使用”。

这样咱们也是能够定位到该元素的。

2.7 find_element_by_xpath()
最后来讲两种最经常使用的定位方法,xpath 元素定位:经过查找元素的路径去查找元素。

这两个方法在使用上目前很普遍,也不少人推荐使用的方法。这两个很方便,由于浏览器已经帮咱们作好准备了,咱们只须要复制粘贴就能够了。

咱们继续定位搜索框。

这样咱们直接复制 xpath 路径就能够了,这样就能够解决咱们会输入错误元素的问题(注:在使用 xpath 的时候,最外面的双引号改为单引号)

2.8 find_element_by_css_selector()

css 在操做上跟 xpath 差很少,也是经过复制粘贴的方式进行定位,不一样在于 css 方法经过对页面中的 css 元素定位的。

三 、Autolt 的应用
3.1 Autolt3 下载安装
AutoIt 目前最新是 v3 版本,这是一个使用相似 BASIC 脚本语言的免费软件 , 它设计用于 Windows GUI(图形用户界面) 中进行自动化操做。

它利用模拟键盘按键,鼠标移动和窗口 / 控件的组合来实现自动化任务。而这是其它语言不可能作到或无可靠方法实现的

官方下载:https://www.autoitscript.com/site/autoit/downloads。

点击下载

 

 点击下载

点击 next

点击 I Agree

选择安装 64 位或者 32 位,我这里选择安装的是 64 位的 Autolt,点击 next

点击 next

点击 next

选择安装的路径,点击 install

这里的 √ 去掉,点击 finish,这样就已经完成了。

3.2 Autolt3 使用

如今就来试试怎样去操做,去到” 开始” 菜单。

咱们能够看到 Autolt 有如下文件,咱们主要来看三个文件:Autolt Window Info(x64)、Compile Script to .exe(x64)、SciTE Script Editor。

第一个文件是用来录制咱们操做的步骤,第二个文件是将咱们的 .au 文件转换成咱们最终的 .exe 文件,第三个是编辑咱们 .au 文件。这样一来,咱们就基本了解 Autolt 的使用流程了。

3.3  Autolt3 文件操做

首先咱们须要打开 Autolt Window Info(x64) 这个文件:

在 pycharm 里建立一个命名为 “upload” 的 HTML 文件,

 <!DOCTYPE html>    <html lang="en">    <head>    <meta charset="UTF-8">    <title>upload_Title</title>    <link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" />    </head>    <body>    <div class="row-fluid">    <div class="span6 well">    <h3>upload_file</h3>    <input type="file" name="file" />    </div>    </div>    </body>    <script src="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.js"></script>    </html>
将这段代码复制粘贴,而后打开:

点击选择文件,会打开一个窗口:

如今咱们使用 autolt 工具来定位窗口的位置,拖动圆点:

 

 

将移动到的位置的信息记录下来,点击 Control 能够看到信息窗口的 title 为 “打开”,标题的 Class 为 “#32770”。

文件名输入框的 class 为 “Edit”,Instance 为 “1” ,因此 ClassnameNN 为 “Edit1”。打开按钮的 class 为 “Button”,Instance 为 “1” ,因此 ClassnameNN 为 “Button1”。

这样咱们就能够编辑脚本信息了,打开 SciTE Script Editor 编辑脚本信息

 ;ControlFocus("title","text",controlID) Edit1=Edit instance 1    ControlFocus(" 打开 ", "","Edit1")    ; Wait 10 seconds for the Upload window to appear    WinWait("[CLASS:#32770]","",10)    ; Set the File name text on the Edit field    ControlSetText(" 打开 ", "", "Edit1", " E:\\ upload.txt")    Sleep(2000)    ; Click on the Open button    ControlClick(" 打开 ", "","Button1");

这样的脚本有一个问题就是,咱们的脚本路径已经写死了,这样对于咱们后期的自动化测试是行不通的。

因此咱们必须将写死的路径改活。咱们将 upload.txt 文件放在咱们的自动化测试脚本里面。

咱们再去修改咱们脚本的路径 ControlSetText(“ 打开 “, “”, “Edit1”, @WorkingDir & “ \file\upload.txt”)。

这段代码的意思就是,打开当前文件夹上一个文件的相对路径,这样就能够防止咱们的代码写死了。

这样咱们就编辑好了脚本信息了,保存咱们的文件,会生成 .au 的文件,可是这个文件不是咱们想要的,咱们要获得的是 .exe 的文件,打开 Compile Script to .exe(x64) 文件,将 .au 的文件转换成 .exe 文件就能够了。

点击 Convert 就 ok 了,在当前文件夹下咱们就能够看到生成的 .exe 文件了。

具体文件都放在这里了。如今咱们就能够去调用 upload.exe 文件了,新建命名为 uploadfile 的 python 文件。

   from selenium import webdriver    import os    driver = webdriver.Chrome()    #打开上传功能页面    file_path =  'file:///' + os.path.abspath('upload.html')    driver.get(file_path)    #点击打开上传窗口    driver.find_element_by_name("file").click()    #调用 upfile.exe 上传程序    os.system(os.path.abspath('upload.exe'))    driver.quit()

将这段代码输入进去,就能够调用了。这样一来,咱们的 Autolt 学习就完成了。更多的 Autolt 语法,能够去官网看详细的文档。

 

4、自动化测试框架的设计架构

5、Docker for Jenkins

相关文章
相关标签/搜索