精华内容
下载资源
问答
  • 打包Python selenium 自动化脚本(如下run.py文件)为exe执行文件,使之可以直接在未安装python环境的windows下运行 run.py文件源码: 文件路径:D:\gongcheng 注:chromedriver.exe 文件在D:\gongcheng目录下 #...

    目标

    打包Python selenium 自动化脚本(如下run.py文件)为exe执行文件,使之可以直接在未安装python环境的windows下运行

    run.py文件源码:

    文件路径:D:\gongcheng
    注:chromedriver.exe 文件在D:\gongcheng目录下

    #!/usr/bin/python3
    # encoding:utf-8
    from selenium import webdriver
    import time as t
    
    brw = webdriver.Chrome(executable_path="chromedriver.exe")
    brw.get("http://www.baidu.com")
    print(brw.title)
    t.sleep(5)
    brw.close()
    
    

    操作环境:

    python版本:3.6.4
    操作系统:Windows7 家庭高级版 64位
    Google Chrome版本 79.0.3945.117(正式版本) (32 位)
    说明:需要特别注意Python selenium打开谷歌浏览器需要用到驱动“chromedriver.exe”,此驱动必须与谷歌浏览器版本对应,查看下载方法详见

    pyinstaller打包exe 步骤

    1. 使用pip工具进行安装pyinstaller,cmd命令行执行:pip install pyinstaller
    2. 执行 pyinstaller 打包成exe,cmd命令执行:
      第一步:cd /d D:\gongcheng
      第二步:pyinstaller -F --icon=tp.ico run.py
      说明:加-F可以把所有依赖包如selenium,全部打包到run.exe里面,–icon为设置打包exe文件的图标,ico图片格式转换网站
      在这里插入图片描述
    3. 打包结束后在D:\gongcheng路径下会多两个文件夹build和dist
      在这里插入图片描述
    4. dist文件下的run.exe即为本次打包的文件,因为我们是python+selenium打包,打开浏览器需要谷歌驱动做支持(详见run.py文件源码),这个驱动文件无法打包到run.exe, 因此我们需要把chromedriver.exe复制在run.exe同级目录下,到时把此两文件复制到未有python环境的window电脑双击run.exe即可运行run.py自动化脚本
      在这里插入图片描述
    5. 具体效果如下:
      在这里插入图片描述

    附件:

    pyinstaller 命令速查
    在这里插入图片描述

    展开全文
  • 闲来无事,随便了解下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库os.system()的基本使用 利用python调用xshell命令

    程序使用方法:

    python addline.py 开发主机ip 程序包 目标主机ip 上传目录 上传编号

    如:python addline.py 240 /home/shaojinlong/2018-7-17/activityIqiyi_766bb10bd811e40732cf79dffde9a904_20180717.tar.gz 165 /home/zhouja01 190122

    具体程序:

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    # @Time : 2018/7/17 20:56

    # @Author : Zhou Jiaan

    # @File : addline.py

    import os

    import sys

    import re

    import time

    ##使用方法:

    # python addline.py 240 filename 165 directory runnum

    ## 如:python addline.py 240 /home/shaojinlong/2018-7-17/activityIqiyi_766bb10bd811e40732cf79dffde9a904_20180717.tar.gz 165 /home/zhouja01 190122

    ##拷贝文件

    def cpfile(source_host,source_dir, runnum):

    os.system("mkdir -p /sx/%s" % (runnum))

    os.system("scp %s:%s /sx/%s " % (source_host,source_dir, runnum))

    ##解压文件

    def tarfile(source_dir,runnum):

    target_test = re.split(r'/', source_dir)

    print(target_test[-1])

    os.system(

    "tar zxvf /sx/%s/%s -C /sx/%s/" % (runnum,target_test[-1], runnum))

    time.sleep(1) #休眠一秒 因为同步脚本获取日志需要一秒钟

    # 同步文件

    def syncfile(filename, runnum,target_host):

    os.system("ssh %s 'mkdir -p /home/zhouja01/sx/%s'" % (target_host,runnum))

    os.system("scp -r /sx/%s/%s %s:/home/zhouja01/sx/%s/" %

    (runnum, filename,target_host,runnum))

    # os.system("ssh 165 'sudo -u apps sh /home/zhouja01/bcp_web.sh /home/zhouja01/sx/%s/%s /home/apps/ananetest/%s'" %

    # (runnum, filename, filename))

    def delfile(runnum):

    os.system("mv /sx/%s /sx/wc"%(runnum))

    def main():

    source_host=sys.argv[1] #源主机ip

    source_dir=sys.argv[2] #源主机文件

    target_host=sys.argv[3] #目标主机ip

    target_dir=sys.argv[4] #目标主机文件

    runnum=sys.argv[5] #oa流水号

    cpfile(source_host,source_dir,runnum) #将文件从源主机拷贝到堡垒机

    tarfile(source_dir,runnum) #解压文件

    #获得解压文件名

    with open('/var/log/sx.log', 'r') as f:

    lines = f.readlines()

    last_line = lines[-1]

    print(last_line)

    filename = re.split(r'/', last_line)

    print(filename[3])

    syncfile(filename[3], runnum,target_host) #将文件同步到目标主机

    delfile(runnum) #将堡垒机文件移动到完成目录

    if __name__ == '__main__':

    main()

    以上这篇python实现自动化上线脚本的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • 如何使用python自动化脚本

    千次阅读 2020-12-03 14:03:59
    小编就有这样的感觉,事实上,脚本确实真的很厉害,能解决我们软件运行的大小问题,比如游戏时候,脚本也是很常见的哦下面就教大家写脚本,一起来学习下吧 准备工具: 安装python 安装教程点击...

    第一次听到脚本,会不会觉得特别厉害呢?小编就有这样的感觉,事实上,脚本确实真的很厉害,能解决我们软件运行的大小问题,比如游戏时候,脚本也是很常见的哦下面就教大家写脚本,一起来学习下吧

    准备工具:

    安装python 安装教程点击https://www.py.cn/jishu/jichu/20465.html

    安装selenium 安装教程点击https://www.py.cn/jishu/jichu/20358.html

    注意事项:

    l selenium3.0需要独立安装Firefox驱动,不再自带驱动,下载地址: https://github.com/mozilla/geckodriver/releases 下载对应版本,解压放在python安装路径下即可;

    l geckodriver驱动要求Friefox浏览器必须48版本以上,如果不是,更新Firefox;

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

    l Chromedriver下载:https://sites.google.com/a/chromium.org/chromedriver/downloads 同样也是下载后放在python安装路径下即可。

    编写自动化脚本:

    完成上面所有准备工作,就可以开始第一个自动化脚本的编写啦~

    打开IDLE,通过快捷键ctrl+n打开一个新窗口,在新窗口输入以下代码:

    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()
    

    保存为test1.py,通过快捷键F5运行脚本,可看到脚本启动Firefox 浏览器进入百度页,输入“selenium” 点击搜索按钮,最后关闭浏览器的过程。脚本即完成了~

    为了防止乱码问题,以及在程序中添加中文注释,把编码统一成 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()
    

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

    好了,大家也可以试试哦,准备工具非常的少,也特别容易操作上手~

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

    千次阅读 热门讨论 2021-06-14 23:31:24
    Python自动化脚本登录校园网 所需工具:python编译环境(博主使用的pycharm作演示,其实在cmd也可以操作!) selenium自动化脚本 .bat批处理文件 第一步,通过pycharm创建一个项目 点击左上角file,然后new project 2...
  • Python自动化脚本 for循环+数字拼接

    千次阅读 2019-01-28 11:35:38
    Python自动化脚本 for循环+数字拼接 在写Python自动化脚本时,在执行多个重复操作时遇到的,需将字符串和数字进行拼接,使用for循环,进行操作。
  • python-自动化脚本编写实例(进价)

    千次阅读 2018-12-02 17:11:12
    编写测试用例也写得非常不错,整编文章值得学习,俗话说:人外有人,山外有山,如果一味只根据自己所懂的去编写脚本,只会一成不变,还是要多看看大神们写的自动化脚本,自动化测试是一门非常...
  • apply_url="http://x.x.x.x/?q=node/75926/people/apply" req = request.get(apply_url,headers=header) #print(req.text) try: if "message" in req.text: ...)
  • python自动化脚本安装apk

    千次阅读 2019-07-16 14:35:40
    记录学习python过程中写的脚本 #!/usr/bin/env python # -*- coding: utf-8 -*- import os import time class appInstall: def __init__(self,path): self.path = path def auto_install(self): #获取...
  • 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...
  • python实现自动化上线脚本

    千次阅读 2018-07-18 16:25:45
    本程序实现将开发程序服务器中的打包文件通过该脚本上传到正式生产环境(注:生产环境和开发环境不互通) 程序基本思路: 将开发环境中的程序包拷贝到本地堡垒机 将程序包进行解压 获得解压后的文件通同步到生产...
  • 安装python环境,下载源码包,解压源码包,安装配置,编译以及编译安装 python自动化安装用户指定版本的python环境 python3.6.2
  • Python开发网页自动化测试脚本

    千次阅读 2013-07-21 16:35:26
     而我们所希望的,是一种自动化回归脚本的方式,可以重复性的回归现有功能,并给出回归测试报告。  Python的世界有一个开源框架Splinter,可以非常棒的模拟浏览器的行为(从某种意义上也可以说是人的访问点击行为
  • 第一个python自动化脚本

    万次阅读 2019-01-29 14:26:12
    第一个python自动化脚本-测试页面pageid # -*- coding : utf-8 -*-__authon__ = 'test'import requestsimport xlrdfrom pyquery import PyQuery as pqfrom xlutils3 import copyimport osimport timefrom ...
  • Python发送邮件自动化脚本

    千次阅读 2018-11-01 19:06:28
    Python发送邮件自动化脚本   import smtplib # 发送字符串的邮件 from email.mime.text import MIMEText # 处理多种形态的邮件主体我们需要 MIMEMultipart 类 # 设置服务器所需信息 fromaddr = 'AAAAAAAA@qq.com'...
  • 自动化脚本编写实例-python

    万次阅读 多人点赞 2017-07-03 13:32:15
    自动化脚本编写实例
  • python自动化执行脚本

    千次阅读 2018-05-25 13:58:25
    1 (1)首先在你的.py文件上加上一行代码注释: ...进入后,输入i 进入可编辑字段,写入 : */30 * * * * python /Users/tongmeina/PycharmProjects/JiraToPdf/everyorg.py 解释: /Users/tongmei...
  • 一个python自动化脚本,读取csv中的url并保存每一个输入值为type,输出纪录有type的csv
  • Jenkins集成python自动化测试脚本

    千次阅读 2018-09-12 16:37:44
    2. 配置-构建-执行Windows批处理命令,打开python脚本所在目录: d: cd D:\XXXXX\XXXXXX python testing.py 3. 应用并且保存 4. 回到工程页面 5. 点击“立即构建”,会发现已经在跑了~~~~~...
  • Python开发自动化测试脚本

    千次阅读 2013-11-17 13:13:52
    Python开发自动化测试脚本 通常对于一个稍具规模的系统,一些新的改动势必会带来一些额外的功能回归测试工作,而这个工作是非常繁杂的,人肉的方式一次又一次的重复将会非常的枯燥乏味。  而我们所希望的,是...
  • 点击上方“AirPython”,选择“置顶公众号”第一时间获取 Python 技术干货!阅读文本大概需要 6 分钟。之前有读者朋友说 Airtest 官方支持将自动化脚本编译成 APK ...
  • 2、第一个Python自动化脚本

    千次阅读 2019-03-02 13:59:44
    现在测试环境已经搭好,接下来我们来编写一个简单的自动化脚本 # coding=utf-8 from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www.baidu.com/") ...
  • python 自动化测试脚本添加日志

    千次阅读 2019-09-05 10:46:33
    # -*- coding: utf-8 -*- __author__ = 'mumu' import logging class Config(object): ... logger = logging.getLogger('BB自动化测试') if not logger.handlers: # 创建一个handler, 用于写入日...
  • python 自动化测试脚本demo

    千次阅读 2019-03-01 11:53:03
    /usr/bin/python import requests import json url='http://127.0.0.1:8080/xx/set_xxx_xxxxx' params={'xxx_xxxxx':0.9} r = requests.post(url,data=json.dumps(params),headers={'Content-Type':'applicati.....
  • 所提交的参数是json格式的用例,保存在txt文件中 2.2记录返回的结果 记录提交参数后的情况,写入结果文件 结果返回所保存的文件 2.3相关代码 2.4测试流程图 2.5验证 接口自动化与UI自动化不同,UI自动化是直接操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,905
精华内容 58,362
关键字:

python网页自动化脚本

python 订阅