<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[python012的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/python012</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; python012]]></copyright><item><title><![CDATA[重构一份应用pytest框架的测试代码]]></title><link>https://blog.csdn.net/python012/article/details/80287725</link><guid>https://blog.csdn.net/python012/article/details/80287725</guid><author>python012</author><pubDate>Fri, 11 May 2018 23:26:41 +0800</pubDate><description><![CDATA[项目中有份API测试的代码的结构大致如下


  /api_test 
      –  test_device_api01_via_lan.py 
      –  test_device_api02_via_lan.py 
      – test_device_api03_via_lan.py 
      – test_device_api01_via_wan.py 
      – te...]]></description><category></category></item><item><title><![CDATA[pytest测试框架中的setup和tearDown - 1]]></title><link>https://blog.csdn.net/python012/article/details/80260247</link><guid>https://blog.csdn.net/python012/article/details/80260247</guid><author>python012</author><pubDate>Wed, 09 May 2018 21:48:31 +0800</pubDate><description><![CDATA[这次内容是阅读[pytest fixtures: explicit, modular, scalable](https://docs.pytest.org/en/latest/fixture.html 
)的一些总结，pytest fixture功能很丰富，功能远不止用来构建测试中传统的setup/teardown。

但是还是先看下用pytest.fixture特性写的setup/teardow...]]></description><category></category></item><item><title><![CDATA[pytest测试框架中的setup和tearDown - 0]]></title><link>https://blog.csdn.net/python012/article/details/80246480</link><guid>https://blog.csdn.net/python012/article/details/80246480</guid><author>python012</author><pubDate>Tue, 08 May 2018 21:51:19 +0800</pubDate><description><![CDATA[最近对pytest比较感兴趣，看了pytest的文档classic xunit-style setup，这里做个小结，直接看代码。

# content of test_websites.py

'''
Setup/teardown in pytest, see https://docs.pytest.org/en/3.5.1/xunit_setup.html

Remarks:
1. setup...]]></description><category></category></item><item><title><![CDATA[不使用IDE的情况下，导入自定义Python module的最佳实践 - 1]]></title><link>https://blog.csdn.net/python012/article/details/80219359</link><guid>https://blog.csdn.net/python012/article/details/80219359</guid><author>python012</author><pubDate>Sun, 06 May 2018 22:20:31 +0800</pubDate><description><![CDATA[CPyUG确实是个挺好的组织，Python方面的问题一般都会有热心又专业的小伙伴帮忙回答，针对上次导入自定义Python module的问题，目前有两个可行的办法。

方法1是针对应用了pytest框架的测试项目的，例如有如下项目结构。 
 
项目中定义了一个包util，其中有模块global_values.py，在另一个目录testlogin中有test_login.py希望导入模块global...]]></description><category></category></item><item><title><![CDATA[不使用IDE的情况下，导入自定义Python module的最佳实践 - 0]]></title><link>https://blog.csdn.net/python012/article/details/80200680</link><guid>https://blog.csdn.net/python012/article/details/80200680</guid><author>python012</author><pubDate>Fri, 04 May 2018 21:38:19 +0800</pubDate><description><![CDATA[最近比较喜欢微软出的Visual Studio Code这个代码编辑器，和Sublime有点相似，但是用起来更方便一些。和PyCharm不一样，用VS code写自定义module的时候，会出现找不到module的报错，原因是VS code不会像IDE那样，帮用户把项目目录临时性加入到系统PATH中去。

今天做了些探索，目前可行的方法大致如下，但是仍然不能算是最佳实践，已经在CPyUG上提了这个...]]></description><category></category></item><item><title><![CDATA[【高质量Python代码】01 - 将常量放在同一个文件里并防止修改]]></title><link>https://blog.csdn.net/python012/article/details/80010490</link><guid>https://blog.csdn.net/python012/article/details/80010490</guid><author>python012</author><pubDate>Thu, 19 Apr 2018 20:31:30 +0800</pubDate><description><![CDATA[最近在看《编写高质量代码-改善Python程序的91个建议》，里面建议了很多比较好，比较Pythonic的代码写法，打算边看边实践，挑选一些记录下，这算是第一篇吧。

常量也就是那些一般不会变的数据，建议的做法如下：

'''
Best practice 01

Put all constants in one file, and protect them from changing value....]]></description><category></category></item><item><title><![CDATA[转一篇关于Python类属性与实例属性的博文]]></title><link>https://blog.csdn.net/python012/article/details/79982847</link><guid>https://blog.csdn.net/python012/article/details/79982847</guid><author>python012</author><pubDate>Tue, 17 Apr 2018 23:47:00 +0800</pubDate><description><![CDATA[链接见 https://segmentfault.com/a/1190000002671941

小结下我的理解，如下一个Person类

class Person(object):
    school_name = &quot;ABC school&quot;

    def __init__(self, name):
        self.name = name

    def print_name(s...]]></description><category></category></item><item><title><![CDATA[virtualenv的使用小记]]></title><link>https://blog.csdn.net/python012/article/details/79980576</link><guid>https://blog.csdn.net/python012/article/details/79980576</guid><author>python012</author><pubDate>Tue, 17 Apr 2018 20:48:50 +0800</pubDate><description><![CDATA[virtualenv可以用来创建一套虚拟的、独立的、干净python环境，如果系统中安装有多个python版本，则还可以指定版本。

pip install virtualenv  pip安装virtualenv。 
virtualenv venv --python=python3.6 创建一个名字叫venv的python环境，python版本指定为3.6，然后virtualenv会在当前目录下创...]]></description><category></category></item><item><title><![CDATA[解决上篇博文里提到的不能使用unittest.mock.patch()的问题]]></title><link>https://blog.csdn.net/python012/article/details/79966300</link><guid>https://blog.csdn.net/python012/article/details/79966300</guid><author>python012</author><pubDate>Mon, 16 Apr 2018 20:49:56 +0800</pubDate><description><![CDATA[今天研究了下，问题解决了，关键还是一个查找module的问题。



小结一个import的基础用法

很多源代码里看到这样的用法，from flask import Flask，from models.item import ItemModel，然后当我自己创建了一个名字叫person的module的时候，如果我也想在其他代码里方便的使用from person import Person来导入P...]]></description><category></category></item><item><title><![CDATA[Python的单元测试unittest中的Mock使用小结]]></title><link>https://blog.csdn.net/python012/article/details/79944600</link><guid>https://blog.csdn.net/python012/article/details/79944600</guid><author>python012</author><pubDate>Sat, 14 Apr 2018 21:41:40 +0800</pubDate><description><![CDATA[前面一篇博文简单说了使用unittest.mock对无返回值的函数做单元测试。这里是更多一些例子的总结。



被测函数中使用到了input需要自动化输入



#!/usr/bin/env python3

from unittest import TestCase
from unittest.mock import patch
from unittest import main

def fu...]]></description><category></category></item><item><title><![CDATA[使用unittest做类似print这样无return返回值的函数的单元测试]]></title><link>https://blog.csdn.net/python012/article/details/79903641</link><guid>https://blog.csdn.net/python012/article/details/79903641</guid><author>python012</author><pubDate>Wed, 11 Apr 2018 21:40:29 +0800</pubDate><description><![CDATA[在看Python里自带的一个单元测试库unittest，有个有意思的应用是可以对类似于print()这样无return返回值的函数做验证。见下面代码。

#!/usr/bin/env python3

from unittest import TestCase
from unittest.mock import patch
from unittest import main

class Pers...]]></description><category></category></item><item><title><![CDATA['Master Jenkins CI For DevOps and Developers'课程总结 - 2]]></title><link>https://blog.csdn.net/python012/article/details/79829576</link><guid>https://blog.csdn.net/python012/article/details/79829576</guid><author>python012</author><pubDate>Thu, 05 Apr 2018 21:42:24 +0800</pubDate><description><![CDATA[CI/CD在Jenkins上的简易实现

Build job

在pipeline的最上游的Build job里的Configure里做如下设置，可使该job以1分钟1次的频率，去轮询Git repository里的代码，如果有更新，则即刻开始build。* * * * *表示轮询频率是每一天的每一分钟，这里是用的Cron表达式，具体可见Cron Format。



Continous Deli...]]></description><category></category></item><item><title><![CDATA['Master Jenkins CI For DevOps and Developers'课程总结 - 1]]></title><link>https://blog.csdn.net/python012/article/details/79828052</link><guid>https://blog.csdn.net/python012/article/details/79828052</guid><author>python012</author><pubDate>Thu, 05 Apr 2018 18:10:25 +0800</pubDate><description><![CDATA[在Maven项目里添加Java静态代码质量检查并发布报告

需要的插件：


Maven Integration plugin
Checkstyle Plug-in


具体步骤：


新建job，选择Freestyle project。 Source Code Management选择Git，填入Repository URL。
Build中添加Invoke top-level Maven tar...]]></description><category></category></item><item><title><![CDATA['Master Jenkins CI For DevOps and Developers'课程总结 - 0]]></title><link>https://blog.csdn.net/python012/article/details/79811208</link><guid>https://blog.csdn.net/python012/article/details/79811208</guid><author>python012</author><pubDate>Wed, 04 Apr 2018 00:07:35 +0800</pubDate><description><![CDATA[这个课程的内容不算多，不到一个星期就看完了，赶紧来做个总结和笔记。

课程中的内容大致分为3部分。


普通的Jenkins pipeline的创建。从github（git）上pull代码，触发的时间设置（Poll SCM），配置JDK、Maven、Git，配置Maven项目，Maven项目中clean package后收集生成的war包，job之间的触发的互相依赖，使用pipeline插件，让p...]]></description><category></category></item><item><title><![CDATA[Enrolled 'Master Jenkins CI For DevOps and Developers'！]]></title><link>https://blog.csdn.net/python012/article/details/79783579</link><guid>https://blog.csdn.net/python012/article/details/79783579</guid><author>python012</author><pubDate>Sun, 01 Apr 2018 23:56:21 +0800</pubDate><description><![CDATA[在Thoughtworks第一次接触pipeline等概念后，非常认同由Jenkins pipeline串联起来的开发-测试-部署这个工作模式，试听了下这个课程，instructor是James Lee，可能是位华裔，口音好听多了，而且课程设计可称的上是精致，确实是认真备课过的。目前已经完成了好几章了，很是喜欢。目前的问题的是学的太快，急需总结。...]]></description><category></category></item><item><title><![CDATA[测试框架设计学习笔记 - 4]]></title><link>https://blog.csdn.net/python012/article/details/79782577</link><guid>https://blog.csdn.net/python012/article/details/79782577</guid><author>python012</author><pubDate>Sun, 01 Apr 2018 22:07:20 +0800</pubDate><description><![CDATA[已经把课程基本看完，简单总结下Maven后面的内容：


Ant的基本使用（build.xml）。这里作为小白，我有些困惑，既然Maven已经可以提供从命令行拉起所有的testng测试，那ant在此有什么用？我在Q&amp;amp;A上向讲师提出这个问题，表示不太明白为什么这里需要学习ant，似乎Maven已经足够满足建立Jenkins+Maven+testNG+Selenium Webdriver这一套...]]></description><category></category></item><item><title><![CDATA[2018年的学习计划]]></title><link>https://blog.csdn.net/python012/article/details/79692414</link><guid>https://blog.csdn.net/python012/article/details/79692414</guid><author>python012</author><pubDate>Sun, 25 Mar 2018 23:38:43 +0800</pubDate><description><![CDATA[2018年马上就要过完第一个季度了（1～3月），感觉还是需要计划一下今年的时间，集中一些注意力。

扯点闲话，以前学习了一点点王阳明心学的皮毛，知行合一4个字，本来是挂在博客的title上，后来才知道知行合一并不是最初那么字面的意思，其实大概是说3个瞬间，1人眼在看到事物后，2心（大脑）对看到的东西做出解读和反应，3人做出应有的行为，知行合一是说这3个瞬间应该是统一，我个人的理解就是遇到很多显而易...]]></description><category></category></item><item><title><![CDATA[Jenkins执行完构建后testng插件找不到testng-results.xml]]></title><link>https://blog.csdn.net/python012/article/details/79672358</link><guid>https://blog.csdn.net/python012/article/details/79672358</guid><author>python012</author><pubDate>Fri, 23 Mar 2018 20:33:32 +0800</pubDate><description><![CDATA[昨天把Jenkins（ver. 2.107.1，此处注意，几乎是一个最新的Jenkins版本）安装在mac上，并建了一个简单的job，来体验下Jenkins+Maven+testng的效果，遇到这样一个有意思的问题，就是使用默认设置，也配置了testng的测试结果报告插件， 


当Jenkins构建执行后，也可以正常找到指定的pom.xml文件，并执行Maven命令mvn test -PmyTe...]]></description><category></category></item><item><title><![CDATA[测试框架设计学习笔记 - 3]]></title><link>https://blog.csdn.net/python012/article/details/79647762</link><guid>https://blog.csdn.net/python012/article/details/79647762</guid><author>python012</author><pubDate>Wed, 21 Mar 2018 23:15:57 +0800</pubDate><description><![CDATA[学习到28节，testng部分结束了，开始学习Maven。主要内容是Maven的介绍，安装，配置，和几个主要Maven命令：


mvn archetype:generate
mvn eclipse:eclipse
mvn test
mvn test -Psanity  //sanity 是POM.xml中某个profile的id，命令行执行也是异常方便，在Jenkins上异常好用…


Mave...]]></description><category></category></item><item><title><![CDATA[小结WEB接口测试]]></title><link>https://blog.csdn.net/python012/article/details/79587665</link><guid>https://blog.csdn.net/python012/article/details/79587665</guid><author>python012</author><pubDate>Fri, 16 Mar 2018 22:20:07 +0800</pubDate><description><![CDATA[最近在做一个接口测试的更新，往里面添加了很多新的测试，连续加班两周，这里做一些总结。

被测设备介绍： 
这是一个针对某款智能设备的WEB API的测试，设备内运行OpenWRT系统，内部使用一套节点来记录很多设备信息和配置信息，设备也提供一个WEB GUI页面，可以通过打开其主页来做配置，也提供了一套WEB 接口API，来实现远程设置功能（其实就是给WEB GUI页面来调用）

测试框架介绍： ...]]></description><category></category></item></channel></rss>