目录: why unittest? unittest的四个重要概念 加载测试用例的三个方法 自动加载测试用例 忽略测试和预期失败 生成html测试报告 why unittest? 简介: Unittest是python自带的单元测试框架,设计灵感来自Java中的Juint,具有和Junit类似的结构 优点: 不仅可以用于单元测试,还适用于自动化测试用例的开发与执行 可阻止执行测试用例 断言预期结果 批量执行测试用例 最终可生成测试结果 unittest四个重要的概念: 1.1.测试用例(Test…
目录: 关于selenium Selenium 安装Selenium 安装浏览器驱动 配置环境变量 selenium方法详解 定位元素 元素操作 浏览器操作 鼠标事件 浏览器事件 设置元素等待 多表单切换 多窗口切换 对话框操作 选择框操作 文件上传 文件下载 cookie操作 登录操作 JavaScript操作 窗口截图 Selenium Selenium是⼀个⽤于测试⽹站的⾃动化测试⼯具,⽀持各种浏览器包括Chrome.Firefox.Safari等主流界⾯浏览器,同时也⽀持phantomJ…
同在当前目录下的模块和包导入 模块定义 本质就是.py结尾的python文件. 用来从逻辑上组织python代码(变量,函数,类,逻辑) 文件名: test.py;  对应的模块名 : test 模块导入方式 import module_name 调用时需要加module_name. (有点类似java中的类名.调用) import module1_name, module2_name 调用时需要加module_name (有点类似java中的类名.调用) from module_name im…
random模块 常用方法 random.random() 随机产生一个小于1的浮点数 import random print(random.random()) #0.41537618182768266 random.randint(start,stop)随机产生一个由start 到stop的整数 print(random.randint(0,9)) #3 random.randrange ( start,stop ) 随机产生一个由start开始到小于stop的整数 print(random.…
python爬虫scrapy项目(一) 爬取目标:腾讯招聘网站(起始url:https://hr.tencent.com/position.php?keywords=&tid=0&start) 爬取内容:职位:职位类型:招聘人数:工作地点:发布时间:招聘详细链接:工作职责:工作要求 反反爬措施:设置随机user-agent.设置请求延时操作. 1.开始创建项目 scrapy startproject tencent 2.进入tencent文件夹,执行启动spider爬虫文件代码,编写爬虫文…
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链接到python解释器的内置模块 为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python…
sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please:') val = sys.stdin.readline()[:-1] shutil…
简介: shutil是python的一个内置模块,提供了许多关于文件和文件集合的高级操作,特别提供文件夹与文件操作.归档操作了支持文件复制和删除的功能. 文件夹与文件操作: copyfileobj(fsrc, fdst, length=16*1024) copyfile(src, dst) copymode(src, dst) copystat(src, dst) copy(src, dst) copy2(src, dst) ignore_patterns(*patterns) copytree…
一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块的,本质是一个目录(必须带一个__init__.py) 二.导入方法 import module_name                          #导入一个模块 import module1_name,import module2_name         #导入多个模块  跟上面一样…
模块介绍 1.定义: 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件) 2.导入方法: import module_name 引用脚本里的函数用方法module_name.logger() import module1_name,module2_name 导入多个脚本模块 from module…
打印日志的五个级别: import logging logging.debug('test debug') logging.info('test info') logging.warning('test warning')# WARNING:root:test warning logging.error('test error') # ERROR:root:test error logging.critical('test critical')# CRITICAL:root:test criti…
摘自:python中的正则表达式(re模块) 一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. 二.正则表达式中常用的字符含义 1.普通字符和11个元字符: 普通字符 匹配自身 abc abc . 匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符 a.c abc \ 转义字符,使后一个字符改变原来的意思 a\.…
shelve模块是一个简单的k,v 将内存数据通过文件持久化的模块,可以持久化任何pickle可以支持的python数据.简单的说对 pickle的更上一层的封装. 写文件 import shelve d = shelve.open('test4') #这个文件不用存在,运行自动生成 name = ['hello','china','!'] d["test"] = name #k,v d.close() 运行成功后会在当前目录下多3个文件.分别是test4.bak,test4.dat,…
模块的分类: a:标准库 内置模块 如sys,os等 b:开源模块 大神封装好的 直接可以拿来用的. c:自定义模块 自己封装的模块 Python中通常表示时间的方式有:时间戳.格式化的日期.元组(九个元素表示). time模块 time模块属于常用的内置模块.通常用来处理时间. 时间戳 import time print(time.time()) #1501743350.2958055 格式化日期 元组 import time print(time.localtime())#time.stru…
简介: filecmp是python内置的一个模块,用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单 两个主要的方法: filecmp.cmp(f1, f2[, shallow]) 比较两个文件的内容是否匹配.参数f1, f2指定要比较的文件的路径.可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性).如果文件内容匹配,函数返回True,否则返回False. filecmp.cmpfiles(dir1, dir2, common[…
一.TestNG的优点 1.1 漂亮的HTML格式测试报告 1.2 支持并发测试 1.3 参数化测试更简单 1.4 支持输出日志 1.5 支持更多功能的注解 二.编写TestNG测试用例的步骤 2.1 使用 Eclipse生成TestNG的测试程序框架 2.2 在生成的程序框架中编写测试代码逻辑 2.3 根据测试代码逻辑,插入TestNG注解标签 2.4 配置Testng.xml文件,设定测试类.测试方法.测试分组的执行信息 2.5 执行TestNG的测试程序 三.如何安装TestNG? 启动E…
hashlib模块 用于加密相关的操作,在python3中替代了md5和sha模块,主要提供SHA和MD5算法. MD5 import hashlib m = hashlib.md5() #调用md5方法 m.update(b'Hello') print(m.digest()) #b"\x8b\x1a\x99S\xc4a\x12\x96\xa8'\xab\xf8\xc4x\x04\xd7" 2进制格式hash print(m.hexdigest()) #8b1a9953c4611296…
YAML模块 主要用来做配置文件用的. yaml格式: 详细参考官方文档:PyYAML configparser模块 同样是用于生成和修改配置文件用的.格式和mysql一样. 生成配置文件 import configparser config = configparser.ConfigParser() #生成对象 config['DEFAULT'] = {'Server1':'45', #每一个块的属性可以直接写字典 'Server2':"50", 'Server3':'51' } c…
XML模块 XML是实现不同语言或程序之间进行数据交换的协议,和json一样. XML格式: <?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this w…
目录 psutil 简介 psutil的功能函数 cpu memory_内存 disk_磁盘 net_网络 pid_进程管理 sensors_传感器 其他(用户,启动时间) psutil简介 psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等.此外,psutil还可以用来进行进程管理,包括判断进程是否存在.获取进程列表.获取进程详细信息等.而且psutil还提供了许多命令行工具提供的功能,包括:ps,top,lsof,netstat,if…
简介 pyquery是一个强大的 HTML 解析库,利用它,我们可以直接解析 DOM 节点的结构,并通过 DOM 节点的一些属性快速进行内容提取. 官方文档:http://pyquery.readthedocs.io/ 安装 pip3 install pyquery 初始化 字符串初始化 html = ''' <div> <ul> <li class="item-0">first item</li> <li class="…
参考官方文档:https://pypi.org/project/progressbar/#description progressbar 安装: pip install progressbar progressbar.ProgressBar() 可选参数: maxval = None widgets = None term_width = None poll:int = 1 left_justify:bool = True fd = None 例: progressbar.ProgressBar…
最近主要把javaweb的三大框架过一遍. (一)发展历史 传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序分为几层,有负责前台展示的jsp.负责流程逻辑控制的servlet一级负责数据封装的Javabean.但是这种结构仍然存在问题:如JSP页面中需要使用<%%>符号嵌入很多的java代码,造成页面结构混乱,servlet和javabean负责了大量的跳转和运算工作,耦合紧密,程序复用率低等等. Struts 为…
(一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. 这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应.当我们需要相关操作时,不再关注数据库表.我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能.使我们的软件开发真正…
(一)发展历史 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的struts需要调用一个业务类,就需要new一个业务类出来,然后使用:业务层需要调用持久层的类,也需要new一个持久层类出来用.通过这种new方式互相调用就是软件开发中最糟糕设计的体现.简单地说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含.程序就变得很混乱,每个类互相依赖互相调用,复用度极低.如果一个类做了修改,则其他的类也会受到牵连.这时就出现了spri…
键盘管理 TPKeyboardAvoiding IQKeyboardManager(1.2.8) 弹窗HUD MBProgressHUD(0.9.2) SVProgressHUD UIView+Toast UIView显示提示Category Toast-Swift Tosat-swift版本 SnailPopupController 快速弹出自定义视图,支持自定义蒙版样式/过渡效果/手势拖动等 上下拉刷新 MJRefresh SVPullToRefresh JSON解析 MJExtension…
1. elementUI 饿了么出品 基于Vue2 http://element.eleme.io/#/zh-CN 2. ZUI 开源HTML5跨屏框架  (2018年1月4日更新)一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用. http://zui.sexy/ 3.MZUI 为移动端设计,基于 Flex 的 UI 框架.  (2018年1月4日更新) http://zui.sexy/m zui没用过, 到是用了他家的MZUI, 移动端的, 应该是不基于Bo…
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用例时测试数据如何管理和加载.针对测试用例加载以及执行控制,python语言提供了unittest单元测试框架,将测试用例编写在unittest框架下,使用该框架可以单个或者批量加载互不影响的用例执行及更灵活的执行控制,对于更好的进行测试数据的管理和加载,这里我们引入数据驱动的模块:ddt,测试数据和…
一.UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame 为解决一类事情的功能集合 1.2什么是UnitTest框架 概念:UnitTest是python自带的一个单元测试框架,用它来做单元测试 1.3为什么使用UnitTest框架? 能够阻止多个用例去执行 提供丰富的断言方法 能够生成测试报告 1.4 UnitTest框架及原理 做过自动化测试的同学应该都知道python中的unittest框架,它是python自带的一套测试框架,学习起来也…
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者就总结下如何使用unittest单元测试框架来进行WEB自动化测试. 目录 一.unittest模块的各个属性说明 二.使用unittest框架编写测试用例思路 三.使用unittest框架编写测试用例实例 一.unittest模块的各个属性说明 先来聊一聊unittest模块的各个属性,所谓知己知…