吴裕雄--天生自然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('数据未更新,从数据库读取...')

猜你喜欢

转载自www.cnblogs.com/tszr/p/12024642.html