python自动化模块之实践一

1、探测Web服务质量方法:

python版本3.5.2,pycurl版本:pycurl-7.43.0.win-amd64-py3.5

# -*- coding: utf-8 -*-
import os, sys
import time
import sys
import pycurl

URL = "http://www.baidu.com"   #探测的目标URL
c = pycurl.Curl()              #创建一个Curl对象
c.setopt(pycurl.URL, URL)      #定义请求的URL常量
c.setopt(pycurl.CONNECTTIMEOUT, 5) #定义请求连接的等待时间
c.setopt(pycurl.TIMEOUT, 5)        #定义请求超时时间
c.setopt(pycurl.FORBID_REUSE, 1)   #屏蔽下载进度条
c.setopt(pycurl.MAXREDIRS, 1)      #完成交互后强制断开连接,不重用
c.setopt(pycurl.NOPROGRESS, 1)     #指定HTTP重定向的最大数为1
c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30) #设置保存DNS信息的时间为30秒#创建一个文件对象,以"wb"方式打开,用来存储返回的http头部及页面内容
indexfile = open(os.path.dirname(os.path.realpath(__file__)) + "/content.txt", "wb")
c.setopt(pycurl.WRITEHEADER, indexfile) #将返回的HTTP HEADER定向到indexfile文件对象
c.setopt(pycurl.WRITEDATA, indexfile)   #将返回的HTML内容定向到indexfile文件对象
try:
    c.perform()   #提交请求
except Exception as e:
    print("connecion error:" + str(e))
    indexfile.close()
    c.close()
    sys.exit()
NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)        #获取DNS解析时间
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)              #获取建立连接时间
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME)      #获取从建立连接时间到准备传输所消耗的时间
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)  #获取从建立连接时间到传输开始消耗的时间
TOTAL_TIME = c.getinfo(c.TOTAL_TIME)                  #获取传输的总时间
HTTP_CODE = c.getinfo(c.HTTP_CODE)                    #获取HTTP状态码
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)            #获取下载数据包大小
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)                #获取HTTP头部大小
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)          #获取平均下载速度

print("HTTP状态码:%s" % (HTTP_CODE))
print("DNS解析时间:%.2f ms" % (NAMELOOKUP_TIME * 1000))
print("建立连接时间:%.2f ms" % (CONNECT_TIME * 1000))
print("准备传输时间:%.2f ms" % (PRETRANSFER_TIME * 1000))
print("传输开始时间:%.2f ms" % (STARTTRANSFER_TIME * 1000))
print("传输结束总时间:%.2f ms" % (TOTAL_TIME * 1000))
print("下载数据包大小:%d bytes/s" % (SIZE_DOWNLOAD))
print("HTTP头部大小:%d byte" % (HEADER_SIZE))
print("平均下载速度:%d bytes/s" % (SPEED_DOWNLOAD))
indexfile.close()
c.close()

运行结果:HTTP状态码:200

    DNS解析时间:16.00 ms

       建立连接时间:47.00 ms

       准备传输时间:47.00 ms

       传输开始时间:109.00 ms

       传输结束总时间:219.00 ms

       下载数据包大小:102198 bytes/s

       HTTP头部大小:989 byte

       平均下载速度:466657 bytes/s

2、pip和easy-install使用来下载python相关扩展资源包的,用cmd进入到下载好的pip(pip-9.0.1)和easy_install(ez_setup-0.9)文件夹下面,使用python setup.exe install 进行安装,64位操作系统的话easy_install使用python ez_setup.py install 进行安装,安装好后会在python3.5(我使用的是python3.5.2版本)文件下面的Scripts文件夹生成相应文件,然后在cmd中进入Scripts下面就可以使用了,比如要安装xlsxwriter模块,只需要执行pip install xlsxwriter或easy_install xlsxwriter就可以了,截图如下:

easy_install(ez_setup-0.9)下载地址:https://pypi.python.org/pypi/ez_setup/0.9   pip下载地址:https://pypi.python.org/pypi/pip/9.0.1

3、xlsxwriter模块功能演示

#!/usr/bin/env python3
# coding: utf-8
import xlsxwriter

workbook = xlsxwriter.Workbook(‘demo.xlsx‘) #创建一个excel文件
worksheet = workbook.add_worksheet()  # 创建一个工作表对象.
worksheet.set_column(‘A:A‘, 20)      # 设定第一个列A宽度为20像素
bold = workbook.add_format()          #定义一个加粗的格式对象
bold.set_bold()
worksheet.write(‘A1‘, ‘Hello‘)       #A1单元格写入"hello"
worksheet.write(‘A2‘, ‘World‘, bold) #在A2单元格写入"world"并引用加粗格式对象bold
worksheet.write(‘B2‘, u‘中文测试‘, bold) #在B2单元格写入“中文测试”并引用加粗格式对象bold
worksheet.write(2, 0, 32)   #用行列表示法写入数字‘32‘与‘35.5‘
worksheet.write(3, 0, 35.5) #行列表示法的单元格下标以0作为起始值,‘3,0‘等价于‘A3‘
worksheet.write(4, 0, ‘=SUM(A3:A4)‘) #求A3:A4的和,并将结果写入‘4,0‘,即‘A5‘
#worksheet.insert_image(‘B5‘, ‘img/python-logo.png‘) #  在B5单元格插入图片
workbook.close()

输入结果如下图:

4、

时间: 2024-08-06 15:28:58

python自动化模块之实践一的相关文章

python自动化--模块操作之re、MySQL、Excel

一.python自有模块正则 1 import re 2 3 # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None 4 print(re.match("www","wwwwccc").group()) #在起始位置匹配 5 print(re.match("www","wcccwww")) #不在起始位置匹配,返回None 6 7 # re.search扫描整个字符串并返回第一个成

如何使用python timeit模块使用实践

其实平时使用测试应用运行时间的情况 细算一下还真的很少.很久没有做性能优化的工作,不管是cProfile还是timeit模块都已经生疏了很久没有使用,我在以前的文章里面有提到过cPfile的性能测试使用,但是一直没有使用过这个更轻量级的运行时间测量库进行过仔细实践总结,今天就来总结一下. 从最简单的例子开始,比如我们想测试一个列表推导式究竟要比正常写for快多少. import timeit foooo = """ sum = [] for i in range(1000):

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)

今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系,纯的python代码处理一般逻辑的确无法活动性能上的极大提升,但是在处理需要等待外部资源返回或多用户的应用程序中,多线程仍然可以作为一个比较好的工具来进行使用. python提供了两个模块thread和threading 来支持python的多线程操作.通俗的讲一般现在我们只使用threading

Python自动化运维之模块与包的使用

一.模块1.什么是模块?一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀.2.为何要使用模块?如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script. 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理.这时我们不仅仅可以把这些文件当做脚本

Cobbler自动化部署最佳实践

第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,实现多版本操作系统批量部署. 笔者QQ:572891887 Linux架构交流群:471443208 1.1 Cobbler简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整

《Python自动化之路》大纲

第一天 1.编程语言介绍2.Python基础,介绍历史.发展情况及现状3.Python安装.环境准备4.编程风格.语法要求.变量格式等5.编写用户交互脚本6.读取用户输入7.基本流程控制,if..else/for x in…/while True8.程序流程控制二,break\continue\ 嵌套循环9.项目实践:编写用户登录认证程序* 实现用户名密码登陆,输入错误3次后锁定用户,多用户在线! 第二天1.python I/O交互2.处理文件.通过Python修改及处理文件内容3.项目实践:编

基于Armitage的MSF自动化漏洞攻击实践

基于Armitage的MSF自动化漏洞攻击实践 目录 实践环境 预备知识 Armitage基础配置 ms08_067_netapi:自动化漏洞溢出攻击实践 ms14_064_ole_code_execution:IE漏洞自动化攻击实践 ms17_010_eternalblue:"永恒之蓝"自动化攻击实践 office_ms17_11882:Office漏洞自动化攻击实践 John the Ripper_linux口令破解模块:Armitage下Auxiliary辅助模块应用 实践中遇到

Selenium2+python自动化59-数据驱动(ddt)

前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成. 一.环境准备 1.安装ddt模块,打开cmd输入pip install ddt在线安装 >>pip install ddt 二.数据驱动原理 1.测试数据为多个字典的list类型 2.测试类前加修饰@ddt.ddt 3.case前加修饰@ddt.data() 4.运