精华内容
下载资源
问答
  • python自动化实例

    千次阅读 2018-12-10 15:42:00
    前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在...
    前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样。
    
      我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项。
    
      在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。我把这个测试场景分拆如下步骤:
    

    1) 启动后浏览器,这里我们用Chrome

    2) 打开百度首页,https://www.baidu.com

    3) 定位搜索输入框,记录下输入框元素的xpath表达式://*[@id=‘kw’]

    4) 定位搜索提交按钮(百度一下这个按钮),获取xpath表达式://*[@id=‘su’]

    5) 在搜索输入框输入“Selenium”,点击百度一下这个按钮。

    6) 在搜索结果列表去判断是否存在Selenium官网这个链接。

    7) 退出浏览器,结束测试。

    如果,还不会通过火狐浏览器上插件firepath获取元素的表达式,请看上一篇文章。如果你没有安装Chrome,那就用Firefox。

    1) 桌面新建一个记事本,命名并保存为FirstScript.py

    2) 输入如下代码片段到FirstScript.py,保存

    3) 打开cmd窗口,切换到桌面路径下,然后通过python FirstScript.py 来执行脚本。

    FirstScript.py脚本如下

    coding=utf-8

    import time
    from selenium import webdriver

    driver = webdriver.Chrome() # 打开chrome,如果没有安装chrome,换成webdriver.Firefox()
    driver.maximize_window() # 最大化浏览器窗口
    driver.implicitly_wait(8) # 设置隐式时间等待

    driver.get(“https://www.baidu.com”) # 地址栏输入百度地址
    driver.find_element_by_xpath("//[@id=‘kw’]").send_keys(“selenium”) # 搜索输入框输入Selenium
    driver.find_element_by_xpath("//
    [@id=‘su’]").click() #点击百度一下按钮

    导入time模块,等待2秒

    time.sleep(2)

    这里通过元素XPath表达式来确定该元素显示在结果列表,从而判断Selenium官网这个链接显示在结果列表。

    这里采用了相对元素定位方法/…/

    通过selenium方法is_displayed() 来判断我们的目标元素是否在页面显示。

    driver.find_element_by_xpath("//div/h3/a[text()=‘官网’]/…/a/em[text()=‘Selenium’]").is_displayed()
    driver.quit()

    第二种断言写法:

    #coding=utf-8
    import time
    from selenium import webdriver

    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(8)

    driver.get(“https://www.baidu.com”)
    driver.find_element_by_xpath("//[@id=‘kw’]").send_keys(“selenium”)
    driver.find_element_by_xpath("//
    [@id=‘su’]").click()

    time.sleep(2)

    第二个判断方法
    ele_string = driver.find_element_by_xpath("//div/h3/a[text()=‘官网’]/…/a").text
    if (ele_string == u"Selenium - Web Browser Automation"):
    print “测试成功,结果和预期结果匹配!”
    driver.quit()
    这里只利用 两个等号(==)来判断两个字符串是否完全相同,有时候我们还需要对得到的字符串进行切割操作,才能进行去匹配,以后再介绍字符串切割处理在自动化测试结果判断中的使用。

    总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。

     建议: 以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。因为,你在书写脚本过程,肯定会犯一些语法和输入错误,在调试脚本过程,通过观察报错信息,直到你解决问题,可以顺利执行脚本,你会得到和收获很多。
    

    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 本文实例讲述了python自动化测试的过程,分享给大家供大家参考。 具体代码如下: import unittest ######################################################################## class RomanNumeralConverter...
  • 本文实例为大家分享了python自动化工具pywinauto,供大家参考,具体内容如下 一、win环境应用自动化 1.浏览器中下载 2.在cmd下启动:python get-pip.py 3.在cmd中输入python -m pip –version查看安装pip的版本。 4....
  • 1 转换测试数据1.1将用例数据...用例描述:描述这条用例的设计的意义提交数据:记录由测试数据转换成的json字符串,结果返回:记录的接口提交测试数据后所返回的结果预期结果:用例的预期,是通过还是不通过实例...

    1 转换测试数据

    1.1将用例数据(红色部分)从excel读取出来,并保存在列表中

    测试用例写在excel里面,第一列是编号,第二列到倒数第六列是填写的测试数据,

    最后五列分别是用例描述,提交数据,结果返回,预期结果,实际结果

    其作用:

    用例描述:描述这条用例的设计的意义

    提交数据:记录由测试数据转换成的json字符串,

    结果返回:记录的接口提交测试数据后所返回的结果

    预期结果:用例的预期,是通过还是不通过

    实例结果:测试后,该用例是否通过

    7b2f89eb-151c-4d6b-97a5-645c76391865.png!large

    1.2相关代码

    4c809a5c-3b58-4ba9-b05a-71d86bf64e85.png!large

    1.3代码流程图

    e108ee7c-9b6d-4fbf-9558-b1c2df2b3884.png!large

    1.4生成字典格式的字符串,并保存到txt文件中

    使用zip函数,将列表的dataresult的第1项(name、remark、type)与第2、3、...、最后 项的数据合并起来,以字典的形式放入列表result中。

    175ee6db-96ed-4e3d-a6cc-960c83eede1a.png!large

    最后将列表result中的每一条数据写到txt文件中

    a50d32f5-161f-4627-8528-54739d415601.png!large

    1.5备注

    涉及操作文件:

    1:保存测试用例的excel文件

    2:保存每条测试数据转换成json格式的txt文件

    涉及方法changDataToJson()

    bbc1c7da-5994-405a-a42c-461a1835185d.png!large

    2:提交数据并记录返回结果

    2.1使用接口循环提交参数

    所提交的参数是json格式的用例,保存在txt文件中

    477d8304-5b0e-4c2b-801f-887db861ea27.png!large

    2.2记录返回的结果

    记录提交参数后的情况,写入结果文件

    结果返回所保存的文件

    b653ecd7-cbbe-46e7-a8ef-54b4c697f4ad.png!large

    2.3相关代码

    a95f1f47-ccf1-41f3-8ba3-6a59f471730e.png!large

    2.4测试流程图

    e3db26a4-cb9f-44c6-bc4a-1cde78692ce7.png!large

    2.5验证

    接口自动化与UI自动化不同,UI自动化是直接操作页面元素,每一个输入、每一个操作都能够清楚看到。

    接口测试肉眼是看不到数据传输的情况,所以我们通过抓包来查看提交的数据与返回的信息

    在测试过程中,我们可以使用wireshark进行抓包,测试完毕,我们对数据包进行过滤

    868315d8-8518-46a7-8792-c93b72f3cbc1.png!large

    2.6备注

    涉及操作文件:

    1:读取参数的json格式txt文件

    2:接口返回信息的记录文件

    涉及方法

    api_test()

    7eaccbff-fb0e-4db7-b25b-082b7960fc43.png!large

    3:将结果写入用例

    3.1将所有信息补全

    将所提交的数据,返回结果,实际结果写回到用例对应位置

    (返回信息中,如果含有"true’,对应的实际结果写上"pass’,如果含有"false’,对应的实际结果写上"no pass’)

    a18bad73-a1f5-4bb3-b221-132cdc29dab9.png!large

    3.2备注

    涉及操作文件:

    1:保存测试用例的excel文件

    2:读取参数的json格式txt文件

    3:接口返回信息的记录文件

    涉及方法

    writeResultIntoCase()

    fba7ca6e-1e48-40da-8cd4-47a92699fb59.png!large

    4:读取excel数据调用接口及对应文件

    4.1将关键项写入excel

    将模块、子模块、功能、功能接口、测试过程所涉及的用例文件、转化的json文件、结果返回文件都写入excel

    运行脚本读取该文件,就可以测试对应接口应该读取哪个用例文件,将用例转换成json后保存哪个文件,测试后返回结果保存哪个文件

    d9bd78e2-1155-404f-a59b-7dfae754e385.png!large

    4.2创建列表,将每列的数据插入列表中

    excel中每一列都创建对应的列表,并插入数据

    298340eb-536b-4ec5-8cb2-a3848ec5ef0b.png!large

    4.3读取excel数据为实参,调用前面的几个方法

    3ac57457-ece6-4d58-bb3c-2fe2f11ce103.png!large

    4.4结果

    部分输出截图

    1db8814e-3498-445e-9951-f7e9712d1e93.png!large

    5:整体流程

    903825d6-c09b-42b7-809a-625df07f36ae.png!large

    展开全文
  • 本已收会围绕整个开发过程,从配置和规划到自动化测试和创建不同的命令行工具。本书涵盖了基础脚本到标准库Python包使用都所有常用知识。通过本书的学习,你将了解如何基于理想的资源规划、实施和发...

    Python 在不断进化并且它的功能已经延伸到IT运维的方方面面。本书将助力你运用 Python 的最新功能编写有效的脚本和创建命令行工具(使用数据类型、循环、条件语句、函数、错误处理等等)来管理你的开发环境。本已收会围绕整个开发过程,从配置和规划到自动化测试和创建不同的命令行工具。本书涵盖了基础脚本到标准库Python包使用都所有常用知识。通过本书的学习,你将了解如何基于理想的资源规划、实施和发布项目,最终创建一个大型的脚本项目。

    本书适用人群

    本书适于了解 Python 编程基础知识并有志于扩展编程技巧来编写命令行脚本和系统运维管理的人学习。

    要求有一定有 Python 编程知识。

    本书涵盖内容

    有效使用本书

    我们编写这本书通过不同脚本来讲解Python编程的不同方法。但是要有效的了解这些内容,你应该:

    有一个安装并配置的好用于测试 /调试脚本的 Linux 系统

    理解所创建的脚本

    知晓每个脚本的组件

    查看这些组件如何以新的方式复用或合并

    在开启本书之旅以前我们假定读者有一定程度的 Python 知识,本书中将不会涉及这些基本技能。它们包括:

    如何安装和配置Linux系统

    如何安装、方案和配置特定的Python IDE(虽然很多已经在大多数Linux发行版本中包含了)

    计算机和编程的基础知识(虽然我们尽力提供一个快速的讲解)

    下载示例代码

    本书原作者的代码包可通过 Packt的 GitHub 仓库进行获取。如果代码有任何更新,都会在 GitHub 的仓库中进行更新。

    adbc6753aa32

    展开全文
  • 本文实例讲述了python自动化测试之setUp与tearDown的用法,分享给大家供大家参考。具体如下: 实例代码如下: class RomanNumeralConverter(object): def __init__(self): self.digit_map = {"M":1000, "D":500, ...
  • 主要介绍了python自动化测试之异常及日志操作,结合实例形式分析了python自动化测试中的异常捕获与日志记录相关操作技巧,需要的朋友可以参考下
  • 闲来无事,随便了解下python自动化测试相关知识,看到这个样例不错简单实用,就拷贝下来保存~通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式...

    闲来无事,随便了解下python自动化测试相关知识,看到这个样例不错简单实用,就拷贝下来保存~

    通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式一次又一次的重复将会非常的枯燥乏味。

    而我们所希望的,是一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告。

    Python的世界有一个开源框架Splinter,可以非常棒的模拟浏览器的行为(从某种意义上也可以说是人的访问点击行为)。Splinter提供了丰富的API,可以获取页面的信息,以判断当前的行为所产生的结果

    最简单的例子

    browser

    = Browser("firefox’) 模拟一个浏览器

    browser.visit("http://waptest.taobao.com/login/login.htm’)

    访问指定URL

    browser.fill('TPL_username',’test_04’)

    填充表单用户名

    browser.fill('TPL_password',’taobao1234’) 填充表单密码

    browser.find_by_value('登录').first.click()表单提交

    运行代码,splinter会打开你所指定的浏览器然后进行各种操作,像放电影一样的根据你的代码逻辑在你面前一步一步执行。

    举个例子,现在我们要回归登录功能,以前我们从未开发过这样的脚本,所以现在我们首先要开发一个用于模拟登录行为的脚本。

    如下面代码(其实是非常简短的一个代码):

    #!/user/bin/python # -*- coding: utf8 -*- import sys import re from splinter.browser import Browser ##################################################### # global instance CLOASE_AFTER_TEST = False GBK = "gbk" UTF8 = "utf8" ##################################################### # encoding for console reload(sys) sys.setdefaultencoding(UTF8) ##################################################### # small method encoding = lambda x:x.encode('gbk') ##################################################### def output(x): """

    encode and print

    """ print

    encoding(x) def resultMsg(x): """

    judge result and print, x : True or False

    """ if x ==

    True: print 'pass' else: print '[X]not pass' print

    '--------------------------' def checkresult(x): """

    check result message, x : the error message u want

    """ resultMsg(browser.is_text_present(x)) def testLogin(desc, username, password,

    result): """

    fill login form message and submit, check result message and

    print

    """ output(desc) browser.fill('TPL_username',username.decode(UTF8)) browser.fill('TPL_password',password.decode(UTF8)) browser.find_by_value('登录').first.click() checkresult(result) __testUrl =

    'http://waptest.taobao.com/login/login.htm?tpl_redirect_url=http://m.taobao.com/' # chrome driver : http://code.google.com/p/selenium/wiki/ChromeDriver# already support firefox browser = Browser() browser.visit(__testUrl) output("测试页面:"+browser.title) try: # test

    login testLogin('测试未输入用户名','','','请输入会员名') testLogin('测试未输入密码','qd_test_001','','请输入密码') testLogin('测试帐户不存在','这是一个不存在的名字哦','xxxxxxx','该账户名不存在') testLogin('测试成功登录','qd_test_001','taobao1234','继续登录前操作') # test find

    password output("测试[找回密码]链接") browser.visit(__testUrl) backPasswordLink =

    browser.find_link_by_text('取回密码') if 1 ==

    len(backPasswordLink): backPasswordLink.first.click() ru = re.findall(re.compile(".*(reg/gp.htm).*", re.IGNORECASE),

    browser.url) if ru is not None: checkresult('找回密码') else: output("测试找回密码链接失败") except Exception,x: print

    x if CLOASE_AFTER_TEST: browser.quit()

    从这几句我们可以看到,我们大致要测试的几种登录情况:

    testLogin('测试未输入用户名','','','请输入会员名')

    testLogin('测试未输入密码','qd_test_001','','请输入密码')

    testLogin('测试帐户不存在','这是一个不存在的名字哦','xxxxxxx','该账户名不存在')

    testLogin('测试成功登录','qd_test_001','taobao1234','继续登录前操作')

    跑一下脚本,可以得到结果:

    --------------------------------------------------------------------------

    测试页面:用户登录 - 手机淘宝网

    测试未输入用户名

    pass

    --------------------------

    测试未输入密码

    pass

    --------------------------

    测试帐户不存在

    pass

    --------------------------

    测试成功登录

    pass

    --------------------------

    测试[找回密码]链接

    pass

    -------------------------------------------------------------------------

    这里的输出是我们代码控制的,你也可以将结果保存到文件中发送到某个监控系统或者邮箱。

    首次开发完自动化回归脚本后,以后的功能调整,我们就不再需要人肉去操作,跑一下脚本,就可以得到结果。

    附:

    Splinter快速介绍

    官方网站:http://splinter.cobrateam.info/

    官方介绍:

    Splinter is an open source tool for testingweb applications

    using Python. It lets you automate browser actions, such asvisiting

    URLs and interacting with their items

    特性:

    1、 可以模拟浏览器行为,访问指定的URL,并且可以指定不同的浏览器类型。比如firefox或者chrome等。不同的浏览器只要在本地安装对应的驱动,就可以在代码中通过名称指定来访问。

    2、 支持cookie操作,可以很方便的添加和删除cookie;

    3、 支持模拟鼠标的动作,比如滑动到某个按钮上,焦点离开某个按钮等等,对于带有动态提示的页面,如搜索引擎的关键字输入框的动态提示,可以非常方便的测试。

    4、 支持模拟键盘的输入操作,对input等控件的输入可以模拟用户的type过程。

    5、 支持直接运行js或者调用页面的js。

    6、 支持模拟上传文件。

    7、 对radio和checkbox有专门的api支持,非常方便;

    8、 支持快速的获取页面的元素或者判断是否存在文本,用于开发判断页面提示信息是否准确非常方便。

    9、 最重要的,splinter的API非常简单,配合官方的文档学习成本几乎是0,当然你得懂一些python语法。如果你比较了解js和css,你可能会像喜欢jquery一样喜欢它;

    功能:

    Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。

    然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。

    展开全文
  • Python自动化运维脚本实例

    万次阅读 2018-12-23 17:28:47
    一、用python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径   #!/usr/bin/env python import os for root,dirs,files in os.walk('/tmp'):  for name in files:  print (os.path.join(root...
  • 今天以一个表单的自动提交,来进一步学习selenium的用法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
  • 今天小编就为大家分享一篇python自动化UI工具发送QQ消息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 程序说明:本程序实现将开发程序服务器中的打包文件通过该脚本上传到正式生产...python库os.system()的基本使用 利用python调用xshell命令程序使用方法:python addline.py 开发主机ip 程序包 目标主机ip 上传目录...
  • 本文实例讲述了python自动化测试之连接几组测试包的方法,分享给大家供大家参考。具体方法如下: 具体代码如下: class RomanNumeralConverter(object): def __init__(self): self.digit_map = {M:1000, D:500, C...
  • python appium APP UI自动化实例代码已上传github 代码已上传github https://github.com/cagezxy/credit_newapp_autotest.git
  • Python自动化

    2018-07-17 15:37:31
    一本Python自动化的书籍,书中通过实例整合知识点,讲解如在实际工作中使用Python。
  • Python自动化修改word实例

    千次阅读 2019-10-17 13:16:59
    利用Python docx模块,可以很方便地打开和修改Word 2007及以后的文档。本文简单地介绍了如何使用python修改word文档中的内容。 例子与代码 word文档的内容是一封表扬信,内容见下图: 表扬信.png 现在需要...
  • 今天小编就为大家分享一篇关于使用Python自动化破解自定义字体混淆信息的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • ansible-python自动化运维框架实例

    万次阅读 2016-03-11 16:43:07
    ansible是基于Python paramiko开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言的自动化运维工具,可以用来自动化部署应用、配置、编排task. Ansible在管理节点将 Ansible 模块通过 SSH 协议...
  • Splinter 快速介绍官方网站:http://splinter.cobrateam.info/官方介绍:Splinter is an open source tool for testingweb applications using Python. It lets you automate browser actions, such asvisiting URLs...
  • 基于Python的接口自动化测试实例.pdf
  • Fabric是一个Python库,只要目标机器支持ssh访问,就可以借助fabric来进行远程操作(如在host1上对host2远程运行shell命令),显然,由于fabric是个Python package,故其它Python package都可以被import到fabric特有...
  • 这段时间刚刚学习了一段时间的Python,加上自己是做iOS开发的,就想着用Python来做一个自动化打包,可以自动完成打包,上传到蒲公英,并且发送邮箱给测试人员. 一是可以减少打包功夫,二来可以练练手,结合自己的工作来...
  • 今天小编就为大家分享一篇Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Selenium3 + python3.6自动化测试基础操作及demo实例 打开浏览器 Chrome浏览器: webdriver.Chrome() 火狐浏览器: webdriver.Firefox() IE浏览器: webdriver.Ie() 发送请求 webdriver.浏览器().get("url") ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,215
精华内容 60,086
关键字:

python自动化实例

python 订阅