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('数据未更新,从数据库读取...')
  • 相关阅读:
    struts2的在aJax中无法传参数到后台使用:解决方法
    jqGrid的属性(2)特指内容属性
    [leetcode]Binary Tree Maximum Path Sum
    判断二叉树是否平衡(Bottomup)
    [转]反向迭代器(rbegin,rend)
    Crack Interview 3.3
    Crack Interview 9.1 合并排序数组
    字符串转整数
    [转]了解如何通过reverse_iterator的base得到iterator
    通过bitmap的方式用8个int实现对256个char是否出现过做记录
  • 原文地址:https://www.cnblogs.com/tszr/p/12024642.html
Copyright © 2011-2022 走看看