接着前面的<tox 教程>,以及刚翻译好的<nox文档>,我们继续聊聊 Python 任务自动化的话题. nox 的作者在去年的 Pycon US 上,做了一场题为<Break the Cycle: Three excellent Python tools to automate repetitive tasks>的分享(B站观看地址:https://b23.tv/av86640235),她介绍了三个任务自动化工具:tox.nox 和 invoke,本文的话题正好就是最…
英文 | Configuration & API 出处 | nox 官方文档 译者 | 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehuazhou/nox_doc_cn 声明:本翻译基于CC BY-NC-SA 4.0授权协议,内容略有改动,转载请保留原文出处,请勿用于商业或非法用途. 接上篇<更好用的 Python 任务自动化工具:nox 官方教程> Noxfile Nox 默认在一个名为noxfile.py的文件中查找配置.在运行…
Python十分钟入门:http://python.jobbole.com/23425/…
十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的,尤其是写重复颜色.样式的代码,这需要我们付出很多努力来保持css代码可维护,但是它本不应该是这样的. 很幸运地是,web开发社区已经解决了这个问题,我们在现在已经有了类似与less.sass和stylus这样的预处理器.它们有很多优于一般的css之处,如下所示: 变量---以至于我们可以在样式表中…
Python 30分钟入门指南 为什么 OIer 要学 Python? Python 语言特性简洁明了,使用 Python 写测试数据生成器和对拍器,比编写 C++ 事半功倍. Python 学习成本很低,只要您熟练掌握 C++/Pascal,您只要花30分钟看完本文并完成实验,即可初步掌握 Python编写脚本: NOI Linux (Ubuntu) 自带 Python,这意味着它可以是您在考场上虐题时的最佳拍档. 为什么我们要准备一个30分钟入门指南? 按理说,在一个库中加入一个从零开始学习…
在我刚翻译完的 Python 打包系列文章中,作者提到了一个神奇的测试工具 tox,而且他本人就是 tox 的维护者之一.趁着话题的相关性,本文将对它做简单的介绍,说不定大家在开发项目时能够用得上. Command line driven CI frontend and development task automation tool 命令行驱动的 CI 前端和开发任务自动化工具 tox 的项目地址是:https://github.com/tox-dev/tox 其核心作用是支持创建隔离的 Py…
Devops基础设施自动化的工具 有许多工具用于基础设施自动化.使用哪个工具决定于体系结构和基础设施的需求.下面我们列出了一些伟大的工具,用于不同类别配置管理.编制.持续集成.监控等. 1.Chef Chef是一个基于ruby开发的配置管理工具.你可能会遇到“基础设施代码”这个词,这意味着配置管理.厨师烹饪书的概念,你的代码基础设施DSL(领域特定语言)和一个小的编程.chef规定和配置虚拟机根据规则中提到的食谱.代理将会运行在所有的服务器配置.代理将chef主服务器的cookbooks,在服务…
一.Python概要 1.1.语言简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,具有20多年的发展历史,成熟且稳定. 用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令.而不同的编程语言,干同一个活,编写的代码量,差距也很大. 比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要…
简介 上一篇,我们虽然已经将生成的最新的测试报告发出去了,但是MIMEText 只能发送正文,无法带附件,因此我还需要继续改造我们的代码,实现可以发送带有附件的邮件.发送带附件的需要导入另外一个模块 MIMEMultipart.还有就是测 试负责人不止一个人,需要将测试报告发给多个人,也就是多个收件人.这篇主要是围绕这两个主题进行讲解的. 大致思路 (一)带有附件发送邮件 1.导入模块 MIMEMultipart from email.mime.multipart import MIMEMult…
英文| nox tutorial 出处| nox 官方文档 译者| 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehuazhou/nox_doc_cn 声明:本翻译基于CC BY-NC-SA 4.0授权协议,内容略有改动,转载请保留原文出处,请勿用于商业或非法用途. 本教程将引导你学会安装.配置和运行 Nox. 安装 Nox 可以通过pip轻松安装: python3 -m pip install nox 你可能希望使用用户站点(user sit…
简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮 件服务软件或者调用运营商邮箱服务器. 对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP.接收邮件,使用的协议是POP3和IMAP.我想有必要说明下 ,POP3和IMAP的区别:POP3在客户端邮箱中所做的操作不会反…
简介 前边几篇,已经教小伙伴们掌握了如何生成HTML的测试报告,那么生成测试报告,我们也不能放在那里不管了,这样即使你报告在漂亮,领导也看不到.因此如果想向领导汇报工作,不仅需要提供更直观的测试报告.而是我们需要将生 成测试报告发个相关的负责人,需要他们看一下测试结果,把控一下项目的接口有风险,会不会影响项目进度等等一些事吧. 发邮件需要用到python两个模块,smtplib和email,这俩模块是python自带的,只需import即可使用.smtplib模块主要负责发送邮件,email模块…
简介 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了.加载用例后,用 unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚 本的用例.那么前边介绍那么多都是半道开始,半道出家,这篇就带大家从头到尾,一步一步给小伙伴们详细介绍一下. 新建测试项目 1.pycharm 左上角 File>New Projetc>Pure Python,在 locat…
简介 这一篇主要是将前边的所有知识做一个整合,把各种各样的砖块---模块(post请求,get请求,logging,参数关联,接口封装等等)垒起来,搭建一个房子.并且有很多小伙伴对于接口项目测试的框架一筹莫展,吵吵着什么时候才可以看到一篇相对于比较完整的项目源码,但是由于完整的项目属于公司内部的代码,这个是说句大实话是没法分享的,这个想必大家都知道吧,不知道入职的时候都签过保密协议吧.所以由于种种原因没办法给小伙伴们分享公司内部的项目源码,就算别人分享了,也只适用于本公司内部的业务.你拿过来也不…
简介 上一篇已经给大家都介绍过了流程类接口关联,但是由于博客的登录机制改变,所以没有办法给小伙伴们实战演练一下,那么这篇就按照上一篇计划的用jenkins来给小伙伴们演示一下流程类接口的封装和调用,其实很简单,就是用上一篇和前边这篇传送门的代码稍 稍修改即可.不知道你自己练习了么,如果练习了,可以看看和我有什么不同,没练习的看看自己思路和我有啥不一样.好了废话少说进入主题 大致流程 1.同样的道理,在接口测试中,有些接口经常会被用到比如登录的接口,这时候我们可以每个接口都封装成一个方法,如:登录…
简介 流程相关的接口,主要用 session 关联,如果写成函数(如上篇),s 参数每个函数都要带,每个函数多个参数,这时候封装成类会更方便.在这里我们还是以博客园为例,带着小伙伴们实践一下. 接口封装大致流程 1.在接口测试中,有些接口经常会被用到比如登录的接口,这时候我们可以每个接口都封装成一个方法,如:登录.保存草稿.发布随笔.删除随笔,这四个接口就可以写成四个方法 2.接口封装好了后,后面我们写用例那就直接调用封装好的接口就行了,有些参数,可以参数化,如保存草稿的 title 和 bod…
简介 按照上一篇的计划,这一篇给小伙伴们讲解一下:(1)多模块使用logging,(2)通过文件配置logging模块,(3)自己封装一个日志(logging)类.可能有的小伙伴在这里会有个疑问一个logging为什么分两篇的篇幅来介绍她呢???那是因为日志是非常重要的,用于记录系统.软件操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统.软件的活动等重要作用,在开发或者测试软系统过程中出现了问题,我们首先想到的就是她——logging.她可不像…
简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式. logging模块与log4j的机制是一样的,只是具体的实现细节不同.模块提供logger,handler,filter,formatter. logger提供日志接口,供应用代码使用.logger最长用的操作有两类:配置和发送日志消息.可以通过…
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库,会不会SQL等等,因此我们这篇文章来讲解如何用 python语言操作mysql数据库. 本科阶段曾学过使用java对MySQL数据库进行操作,基本思路是先连接数据库,然后执行SQL语句对数据库进行操作,最后打印结果并断开连接.使用Python操作数据库的流程和以上过程基本一致,在对其进行介绍之前,先…
简介 前面虽然实现了参数的关联,但是那种只是记流水账的完成功能,不便于维护,也没什么可读性,随着水平和技能的提升,再返回头去看前边写的代码,简直是惨不忍睹那样的代码是初级入门的代码水平都达不到.接下来这篇由我带领小伙伴们把每一 个鼠标点击动作写成一个函数,这样更方便维护了,而且可读性也高,后期其他维护人员在维护代码的时候看起来赏心悦目,就不会骂娘了. 参数化的思维只需记住一点:不要写死,这样就便于维护,否则就会牵一发而动全身,一处修改导致处处修改,不便于维护. 登录函数 1.s 参数是 sess…
简介 五一小长假已经结束了,想必大家都吃饱喝足玩好了,那就继续学习吧.一天不学习,自己知道:两天不学习,对手知道:三天不学习,大家知道:一周不学习,智商输给猪.好了开个玩笑都逗大家一乐,但是想想还是有道理的.那就进 入正题:上一篇我们批量执行完用例后,已经生成的测试报告是生成 HTML 格式的.但是我们可以看出那个官方的测试报告既不美观也不大方,我们这里需要优化一下,优化的让人赏心悦目,就和看到一个美女一样看了一眼,忍不住回头再多 看一眼  - _ - 并且把上一篇遇到的问题列举解决一下. py…
简介 本篇还是回归到我们最初始的话题,想必大家都忘记了,没关系看这里:传送门  没错最初的话题就是登录,由于博客园的登录机制改变了,本篇以我找到的开源免费的登录API为案例,结合 unittest 框架写 2 个用例.同样我们先来看一下接口文档. 接口文档 登录接口 请求方式:POST 请求地址:https://api.apiopen.top/developerLogin Query参数名 类型 必需 描述 示例 e.g. name string 是 用户名 peakchao passwd st…
简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京的天气,一个是查询 南京为例,你也可以查询别的城市的天气预报. 接口文档 1.在实际工作中,开发人员都会给你接口文档方便QA测试,和其他系统的开发人员对接.接口文档如下: 天气预报 获取实时天气 请求方式:POST 请求地址:https://www.apiopen.top/weatherApi Qu…
简介 大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行.虽然或许通过代码实现了,也是稀里糊涂的一知半解,这样还好,好歹自己鼓 捣出了,但是时间和效率并不是很高,下次遇到还是老样子.那么本篇通过最简单案例来给给为小伙伴详细讲解.演示一下 unittest 执行顺序. 实例代码 参考代码 # coding=utf- #.先设置编码,utf-8可支持中英文,如上,一般放在第一行 #.注释:包括记录创建…
简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮.有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录.token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的,只 是换个单词而已:另外一种是在 url 请求参数里,这种更直观. 登录返回token 1.如下图的这个登录接口,就是没有 cookies的登录接口. 2.但是这个登录接口,登录成功后有返回token,如下图 请求头带token 1.登录成功后继续操作其它…
使用简单的unittest.TextTestRunner. 思路: 1 在report目录下创建当日测试报告目录 20190113 2 创建测试报告文件 f = 时间戳.txt 3 加载测试集,运行测试,测试结果unittest.TextTestRunner(stream=f)保存到文件中 项目目录下新建run_test.py文件,写入代码: # coding:utf-8 import unittest from testcase import testcase_index,testcase_s…
selenium和qtp是 功能的自动化测试,loadrunner和jmeter是性能的自动化测试 selenium要求代码能力比较高,适合用python,QTP一般用VBS,loadrunner一般用C,但是现在也可以用java等语言. 现在功能自动化用的工具最多的是QTP,但是selenium的趋势在增长,建议用这个工具…
[简介] Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. [特点] 1. Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型. 2. Python具有很强的面向对象特性,而且简化了面向对象的实现.它消除了保护类型.抽象类.接口等面向对象的元素. 3. Python代码块使用空格或制表符缩进的方式分隔代码. 4. Python仅有31个保留字,而且没有分号.be…
什么是Flask Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI服务的一个微型框架 Flask中包含一个轻量级的web 服务器主要用于在开发阶段测试使用 Falsk使用MTV框架模式 MTV框架模式 M : Models , 模型层 , 主要负责根据数据库建模 T : Templates , 模板层 ,处理用户的显示的内容的,如:html V : Views ,视图 , 处理与用户交互的内容(请求和响应) 下面我们从Templates.Views和Mo…
本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook . 习惯上,我们会按下面格式引入所需要的包: 一.            创建对象 可以通过 Data Structure Intro Setion 来查看有关该节内容的详细信息. 1.可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引: 2.通过传递一个numpy array,时间…