用Python+selenium实现一个自动化测试脚本

一,安装Python.

python官方下载地址:Download Python | Python.org

python


安装后点击开始菜单,在菜单最上面能找到IDLE.
IDLE是python自带的shell, 点击打开, 即可开始编写python脚本了.

IDLE

二,安装selenium

上面python已安装完成,接下来安装selenium.
安装selenium之前需要安装必要工具. setuptools
安装后,(比如zip包形式安装),进入解压的目录,在命令行执行如下命令即可安装.

python setup.py install

再然后安装pip
pip · PyPI
同样,安装tar或解压包,进入目录cmd执行python setup.py install即可安装

安装selenium
上面2个工具安装好后,安装selenium只需在命令行进入python安装路径Script目录下,执行

pip install -U selenium

pip install -U selenium

install ok

即可自动安装.
完成安装后在IDLE输入

from selenium import webdriver

测试安装

如果没报错即代表安装成功.

三,注意事项

  1. selenium3.0 需要独立安装FireFox驱动.解压后放在python安装路径下即可.

  2. geckodriver驱动要求FireFox浏览器必须48版本以上,如果不是,更新FireFox.

  3. 如果用Java开发,需注意3.0必须用JDK1.8版本才行.

  4. 同样谷歌的驱动,没FQ只能使用阿里的镜像了.

注意阿里的镜像对应的谷歌的版本:

Alt text

四,第一个自动化脚本
完成上面所有准备工作,就可以开始第一个自动化脚本的编写了.
打开IDLE,通过快捷键CTRL+N打开一个新窗口,在新窗口输入以下代码:

# coding = utf-8 

from selenium import webdriver 



browser = webdriver.Firefox() 



browser.get("http://www.baidu.com")



browser.find_element_by_id("kw").send_keys("selenium") 

browser.find_element_by_id("su").click() 



browser.quit() 

这里如果关的过快,就需要将browser.quit()给去掉.不然看不见操作

写完脚本后脚本页执行F5快捷键运行脚本,可以看到脚本启动FireFox浏览器进入百度页面,输入”selenium”点击搜索按钮,第一个脚本即完成了.

代码解析:

# coding = utf-8 

(为了防止乱码问题,以及在程序中添加中文注释,把编码统一成UTF-8;)

from selenium import webdriver 

(导入selenium的webdriver包,导入webdriver包后才能使用webdriver API进行自动化脚本开发.)

browser = webdriver.Firefox() 

(将控制的webdriver的Firefox赋值给browser,获得了浏览器对象才可以启动浏览器;)

browser.get("http://www.baidu.com")

(获得浏览器对象后,通过get()方法,向浏览器发送网址;)

browser.find_element_by_id("kw").send_keys("selenium") 

(通过id=kw定位到百度的输入框,并通过键盘方法send_keys()向输入框输入selenium;)

browser.find_element_by_id("su").click() 

(通过id=su定位到搜索按钮,并向按钮发送单击事件(click());)

browser.quit() 

(退出并关闭窗口的每一个相关的驱动程序.)

名词解释:
1.

find_element_by_id()

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

Alt text

2.

find_element_by_name()

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

Alt text


3.

find_elements_by_class_name()

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

Alt text


4.

find_element_by_tag_name()

这个定位的方法是通过元素的标签属性对元素进行定位,在检查元素的时候查看元素的最前面的input,但是这个定位方式有个不好的地方在于很多页面都有同样的标签存在,所以我们定位的时候会很麻烦.
所以,这个方法我们不推荐使用. 这个方法也是仅供参考.

Alt text


实际上是会报错的,因为selenium在定位的时候不清楚我们要找的是哪个元素.

Alt text


我们如果一定要用这个方法的花,我们就需要清楚,我们定位的标签的精准位置.
5.

find_element_by_link_text()

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

Alt text

Alt text


6.

find_element_by_partial_link_text()

这个方法的定位方式就是通过模糊文本信息查找元素,有些时候,我们希望定位到一个文本比较长的元素时,我们就可以通过这个方法去定位.
例如: 定位百度首页页脚下的”使用百度前必读”, 我们是输入”使用”.

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

driver.find_element_by_partial_link_text("使用").click()

这样我们也是可以定位到该元素的.
7.

find_element_by_xpath()

最后来说两种最常用的定位方法,xpath元素定位:通过查找元素的路径去查找元素.
这两个方法在使用上目前很广泛,也很多人推荐使用.这两个很方便,因为浏览器已经帮我们做好准备了,我们只需要复制粘贴就可以了.
我们继续定位搜索框.

Alt text


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

Alt text


8.

find_element_by_css_selector()

css在操作上跟xpath差不多,也是通过复制粘贴的方式进行定位,不同在于css方法通过对页面中的css元素定位的.

Alt text

之上8条的原blog,内涵有其它的脚本界面工具Autolt的介绍

假设测试test1.给定登录页面的username和password,并点击登录按钮,进行自动登录测试
代码如下:

Alt text


就可以以这条脚本运行,而.py文件保存到桌面也可以直接双击运行(首先要安装python)

Alt text

加入再测试其它功能可以根据获取id,name等继而进行测试操作.上面只是基本测试.
之后需要进行测试案例的编写,返回测试数据. 以及与ones.ai自动化测试连接.

ones的对接文档

通用说明

流水线(pipeline)

参数名值类型取值范围默认值取值例子说明
uuidstringlen=8pipeline uuid
namestringlen<=32pipeline 名称
ownerstringlen=8pipeline 创建者 uuid
create_timeint64pipeline 创建时间(秒)
projectobjectpipeline 绑定的 project 信息
 uuidstringlen=8项目 uuid
 namestring项目名称
configure_statusesobjectpipeline 配置状态
 scmobject代码仓库集成配置状态,参考下方说明
 ciobject持续集成配置状态,参考下方说明
 lintobject代码质量检查配置状态,参考下方说明
 testobject自动化测试配置状态,参考下方说明
 artifactobject部署结果关联配置状态,参考下方说明
branchesarraypipeline 下的已知分支列表,参考下方说明
branch_sprint_bindingsarraypipeline 下分支与迭代的绑定列表,参考下方说明
sprint_binding_rulestringpipeline 与项目下迭代的自动绑定规则, 参考下方说明

API 说明

1. pipeline 回调

创建一个 pipeline

URL

https://api.ones.ai/project/team/:teamUUID/pipeline/:pipelineUUID/callback

HTTP Method

POST

调用权限

传值方式

JSON

参数说明

{

  "action": "stage",

  "stage": {

      "type": "test",//stage 类型:start,finish,lint,test

      "name": "test",//stage 名称, eg: "test"

      "start_time": start_time, //阶段的开始时间,单位秒

      "finish_time": finish_time, //阶段的结束时间,单位秒

      "status": status, //stage 状态:unknown,success,failure

  },

  "payload": {

      "test": {

          "executions": [{

              "language":"python", // 测试语言

              "framework":"selenium", // 测试框架名

              "id":"", // 执行结果的 ID

              "start_time":""// 开始执行的时间,单位毫秒

              "finish_time":"" // 执行完成的时间,单位毫秒

              "name": "用例名",

              "description":"用例描述",

              "result": "执行结果", //success, failure, error, skip, unexpected_success, expected_failure

              "message": "错误消息"

          }]

      }

  }

}


返回的HTTP status code

状态码说明
200成功
400请求结构错误
403token 无效,无权限
500服务器错误
801参数错误

返回JSON

参数名值类型取值范围默认值取值例子说明
pipelineobject参考顶端 pipeline 模型

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀!

编辑资料、学习路线图、源代码、软件安装包等!【点击这里】领取!

学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

 

实战案例:

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值