zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然python学习笔记:python实现自动网页测试

    Python 可实现的网页测试的功能十分强大,甚至能通
    过编程来实现让绝大多数的测试过程自动化。 这对很多开
    发者来说,绝对是不可多得的神器。
    hash lib 纽件可以判别文件是否有过更改,只需要用
    md5 方法对指定的文件进行编码,即可进行比对。
    Selenium 是相当著名的网页自动化测试纽件,它可以
    通过指令自动对网页进行测试。 Selenium 还能使开发网页
    时的大量重复性操作实现自动化,并在设直的时间内自动
    运行, 功能相当强大。
    检查网蜡数据是否更新
    抓取网站的数据时通常需要把数据保存在文件或数据库中 。每一次读取网站数
    据 ,都必须占用宝贵的网络资源 ,为 了提高效率 ,如果网站内容没有更新,就没有
    再次读取数据的必要 ,我们 只要从上次保存的文件或数据库中读取就可以了 。
    用 hashlib 判别文件是否有过更新
    Python 提供 hash lib 组件可以判别文件是否更新过,最简单的方式是通过 m d5 方
    法对指定的二进制文件生成编码,只要文件有过更新,就会产生不同的 md5 码 。
    使用 has hlib 之前,首先要导入 ha s h lib 组件,再通过 md5 方法创建一个对象。
    例如 : 创建一个 md5 对象 。 

    用所创建的 md5 对象的 update 方法,可对指定字符串进行加密,其中的字符串
    必须是二进制类型: hexdigest 方法可以得到十六进制的加密结果 。 语法示例如下 :

    这种方式有点麻烦,比较简单的方式是跳过创建 md5 对象和 update 方法,直接
    把指定二进制字符串作为 hashlib.md5 () 参数,例如:

    用 md5 检查网站内容是否更新
    要实现此功能 , 首先我们要把网站先前创建的 md5 码保存起来,然后与新创建
    的 md5 码进行比较,这样就可判断出网站内容是否进行了更新 。
    以下程序中,我们将新浪新同先前的 md5 码保存在 <old md5 . tx t> 文件中,再读
    取出新创建的 md5 码后进行比对,结束后,用最新的 md5 码覆盖原来的 o ld rnd5 .txt 
    文件 。 (<md5 . py>)
    import hashlib,os,requests 
    
    url = "http://opendata.epa.gov.tw/ws/Data/REWXQA/?$orderby=SiteName&$skip=0&$top=1000&format=json"
    
    # 读取网页原始码
    html=requests.get(url).text.encode('utf-8-sig')
    # 判断网页是否更新
    md5 = hashlib.md5(html).hexdigest()
    
    if os.path.exists('F:\pythonBase\pythonex\ch06\old_md5.txt'):
        with open('F:\pythonBase\pythonex\ch06\old_md5.txt', 'r') as f:
            old_md5 = f.read()
        with open('F:\pythonBase\pythonex\ch06\old_md5.txt', 'w') as f:
            f.write(md5)
    else:
        with open('F:\pythonBase\pythonex\ch06\old_md5.txt', 'w') as f:
            f.write(md5)
    
    if md5 != old_md5:
        print('数据已更新...') 
    else:
        print('数据未更新,从数据库读取...')
  • 相关阅读:
    mysql设置外网访问
    c# 导出excel的两种常见方法
    mysql记录
    nginx配置文件nginx.conf简单介绍
    nginx编译安装之-./configure 参数详解
    Springboot中Filter的使用
    Spring Boot中@ConditionalOnProperty使用详解
    spring boot2 配置 FastJsonHttpMessageConverter 不起作用
    springBoot yaml属性配置文件使用详解
    Eclipse离线安装Java Decompiler插件(反编译)
  • 原文地址:https://www.cnblogs.com/tszr/p/12024642.html
Copyright © 2011-2022 走看看