如何用 Python 做自动化测试


本文来自作者 Vant  GitChat 上分享 「如何用 Python 做自动化测试」

编辑 | 哈比

一、Selenium 环境部署

1. window 环境部署

1.1 当前环境

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

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

Selenium 3.4.3;谷歌 59。

1.2 Python3 安装部署

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

首先到官网下载我们需要的 Python3 版本:

点进去直接下载:

1.3 配置环境变量

安装好之后,我们就可以在文件夹看到我们下载好的 Python 文件了。

路径为: D:\python3.6.2。

现在我们去配置环境变量吧。

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

选择 “高级” 选项卡:

编辑当前路径:

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

输入 python:

显示版本信息就证明已经部署成功了,接下来我们就可以开始学习 python 了。

1.4 安装 Selenium

现在我们就可以直接安装 Selenium 了,重新打开 cmd 窗口,输入:pip  查看是否存在 pip 命令:

如果不存在首先检查自己的环境变量是否配置正确了;第二检查 Python 文件夹下的 Scripts 文件夹下是否有 pip.exe 这个文件;如果这两步都没问题,就重新下载 python 文件。因为 pip 这个命令对我们来说是非常重要的。

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

1.5 驱动下载

这个是很多新手都会碰到的问题。其实也不用担心,因为 Selenium 驱动对不同版本的浏览器也是不一样的,所以很多人都会遇到这个问题了。

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

我们进去选择自己浏览器对应版本的驱动下载吧:

上面两个驱动都是对谷歌 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 可以直接看到结果了:

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

二、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 1ControlFocus(" 打开 ", "","Edit1"); Wait 10 seconds for the Upload window to appearWinWait("[CLASS:#32770]","",10); Set the File name text on the Edit fieldControlSetText(" 打开 ", "", "Edit1", " E:\\ upload.txt")Sleep(2000); Click on the Open buttonControlClick(" 打开 ", "","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 webdriverimport osdriver = 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 语法,可以去官网看详细的文档。

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

五、Docker for Jenkins

扫描下方二维码,阅读全文和「读者圈」交流

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8935.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:如何使用Python操作软件按钮来提高工作效率

如何使用Python操作软件按钮来提高工作效率 作为一名有10年Python编程经验的工程师&#xff0c;我很清楚Python在提高工作效率方面的威力。Python可以轻松地操作软件按钮&#xff0c;无论是在Windows还是Linux系统中。在本篇文章中&#xff0c;我将与大家共享一些Python操作软…

痛点-调研-明确需求-实现-测试-发布 不需要手一步到位使用AGI生成去广告脚本,复制粘贴发布到Greasy Fork

总算又想起密码了, 自从用了语雀后, 其他平台基本都不再使用了 csdn 真的**, c h a t g p t 是禁词(已经改为了AGI, 通用型人工智能), 你倒是说清楚啊,直接来一句违反社区规定, 莫名其妙, 得靠猜…服了 今天来补上一篇利用AGI生成的js去广告脚本 前置知识(不看也问题不大) …

chatgpt赋能Python-python_helium

Python Helium: 简介与使用 Python Helium是Python语言下一个高效的UI自动化测试库。 它允许用户创建自动化测试&#xff0c;模拟用户对GUI应用程序的交互&#xff0c;从而确保应用程序在不同设备、浏览器和操作系统上的稳定性和可靠性。Helium非常易于使用&#xff0c;因为其…

chatgpt赋能python:用Python下载软件详解

用Python下载软件详解 在日常使用电脑时&#xff0c;我们不可避免地需要下载各种各样的软件。但是&#xff0c;在一些特殊的情况下&#xff0c;比如需要定期下载某些软件更新或者需要通过脚本自动化下载一些软件&#xff0c;使用浏览器下载就显得很麻烦。那么&#xff0c;这时…

Firefox火狐浏览器提示您的链接不安全的详细解决办法

Firefox火狐浏览器提示您的链接不安全该怎么办&#xff1f;出现这个问题&#xff0c;网页就打不开了&#xff0c;刷新没用&#xff0c;该怎么办呢&#xff1f;下面我们就来看看详细的教程&#xff0c;需要的朋友可以参考下 1、本办法主要针对以下这种状况&#xff0c;“您的链…

【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?

系列文章目录 【AI绘画】Midjourney和Stable Diffusion教程_山楂山楂丸的博客-CSDN博客 目录 系列文章目录 前言 一、AutoGPT是什么&#xff1f; 二、AutoGPT带来的利弊 三、AutoGPT和ChatGPT区别 四、未来 总结 前言 ChatGPT是否过时&#xff1f;AutoGPT的兴起&#…

Chatgpt:Your session has expired解决办法-中文首发

昨天晚上出现的情况&#xff0c;基本是登录chatgpt后一使用就会提示这个&#xff0c;然后让我重新登录&#xff0c;然后一直重复。 我以为是服务器出问题了&#xff0c;就没管。 因为我晚上自己有用api插件访问&#xff0c;发现没问题&#xff0c;加上微博上也没发现chatgpt崩了…

【论文阅读】InstructGPT: Training language models to follow instructions with human feedback

论文链接&#xff1a;InstructGPT 1. 摘要 把语言模型变大并不意味着会让模型更好的理解用户意图&#xff0c;例如大的语言模型会生成一些不真实、有害的、没有帮助的输出给用户&#xff0c;换句话说&#xff0c;这些模型并没有和用户的意图对齐&#xff08;aligned&#xff…

AI2:仅凭开源数据,可达ChatGPT 83%表现

夕小瑶科技说 原创 作者 | Python ChatGPT强大的性能让人爱不释手&#xff0c;ChatGPT迟迟不开源让人恨得牙根痒痒。那仅通过开源数据&#xff0c;能够取得怎样的效果呢&#xff1f;近期&#xff0c;AI2的一篇论文显示&#xff0c;最好的65B规模的模型能够达到ChatGPT表现的8…

chatgpt中的强化学习 PPO

PPO&#xff1f; 强化学习 基本概念 强化学习五要素&#xff1a;智能体、行为、环境、状态、奖励。 先直接将五个要素映射到文本生成任务上&#xff1a; 智能体&#xff1a;生成模型。 行为: 获取当前step token的概率分布&#xff0c;并选取其中一个作为生成的token。 环…

ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》(2018)

论文总结 以下是我阅读完整篇论文做的个人总结&#xff0c;基本包含了ChatGPT1设计的完整框架思路&#xff0c;可以仅看【论文总结】章节。 在GPT1实现的核心架构中&#xff0c;包含两个阶段。 第一阶段 在第一阶段基于一个包含7000本书籍内容的海量未标注文本数据集进行无…

投资者必读:巴菲特2023致股东信全文

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年1月份热门报告合集 ChatGPT团队背景研究报告 ChatGPT的发展历程、原理、技术架构及未来方向 ChatGPT使用总结&#xff1a;150个ChatGPT提示此模板 ChatGPT数据集之谜 …

翻译: 比尔·盖茨 人工智能与手机和互联网一样具有革命性 人工智能时代已经开始

在我的一生中&#xff0c;我看到了两次技术演示&#xff0c;让我感到革命性。 第一次是在 1980 年&#xff0c;当时我接触到了图形用户界面&#xff0c;这是包括 Windows 在内的所有现代操作系统的前身。我和给我看演示的人坐在一起&#xff0c;一位名叫Charles Simonyi的杰出…

面对职业焦虑,我们需要做些什么?

目录 大环境分析&#xff1a;AI 发展汹涌而上 温水煮青蛙&#xff1a;那些“被替代”的“我们” 码农“分类”&#xff1a;程序员都在做些什么&#xff1f; 码农黑暗季&#xff1a;失业潮原因分析 程序员短期真的可替代吗&#xff1f; AI 发展来势汹汹&#xff0c;如何顺势…

AI 正在杀死旧 Web?

编译 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 随着 OpenAI 的 ChatGPT、Google 的 Bard 等 AIGC 工具的出现&#xff0c;由 AI 驱动的内容、信息、机器人已经在过去一年中迅速融入了 Web 网站之中。 然而&#xff0c;在这些工具带来极大便利、提升效…

ChatGPT + 大模型 = 王炸!!

最近&#xff0c;总在业内传着一股风&#xff0c;那就是&#xff1a;大模型时代将会有大量的程序员被淘汰&#xff0c;可谓人心惶惶。但真实情况&#xff0c;真的是这样吗&#xff1f;我不这样认为。 大模型时代下&#xff0c;或将催化更多的程序员&#xff0c;有更多人成为程序…

有哪些值得推荐的数据可视化工具?

作者&#xff1a;文兄 链接&#xff1a;https://www.zhihu.com/question/19929609/answer/133825589 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 谢邀。本答案提要&#xff1a;1.plotly 2.R ggplot23.无需编程语言…

chatgpt赋能python:如何用Python做动画

如何用Python做动画 Python 是一门强大的编程语言&#xff0c;它不仅可以用于常规软件开发&#xff0c;还可以用于动画制作。在本文中&#xff0c;我们将介绍如何使用 Python 来制作动画并为其优化搜索引擎的内容。让我们开始吧&#xff01; 什么是动画&#xff1f; 在我们深…

chatgpt赋能Python-python_mime

Python MIME&#xff1a;理解和使用 Python MIME 是一个用于处理电子邮件和其他多媒体内容的 Python 库。 MIME 是一种在因特网上常用的协议&#xff0c;它允许通过电子邮件、web 浏览器和其他方式发送多媒体内容&#xff0c;包括文本、图像、音频和视频。本文将介绍 Python M…

chatgpt赋能Python-python_gensim

Python Gensim: 一款高效的自然语言处理工具 自然语言处理&#xff08;NLP&#xff09;是目前人工智能领域最受青睐和广泛应用的一个领域。Python Gensim是一款用于实现NLP任务的高效工具&#xff0c;可以用于词向量表示、语料库建模、主题建模、相似性计算等各种自然语言处理…