<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DreamTL的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DreamTL</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DreamTL]]></copyright><item><title><![CDATA[pytest  --------  生成测试报告+ 定制报告（allure生成报告）测试报告生成工具Allure 集成到pytest中【十三】]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104532474</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104532474</guid><author>DreamTL</author><pubDate>Thu, 27 Feb 2020 11:21:18 +0800</pubDate><description><![CDATA[allure是一款开源的，专门用来生成测试结果的一个工具，allure可以与很多的测试框架集成，比如java的junittestngpython的pytest等

alluer会将测试用例的执行数据保存到xml文件中去，再利用allure的命令行将文件转换成html形式呈现出来

第一步：安装Allure （可以去官网上下载： http://repo.maven.apache.org/...]]></description><category></category></item><item><title><![CDATA[pytest  --------只运行上次失败用例（--lf  和 --ff）【十二】]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104532427</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104532427</guid><author>DreamTL</author><pubDate>Thu, 27 Feb 2020 11:17:37 +0800</pubDate><description><![CDATA[当开发修复完bug后，我们一般是重点测上次失败的用例

那自动化测试也一样，当用例特别多时，为了节省时间，第一部分用例失败了，修复完之后，可以只测试上次失败的用例

当用例特别多的时候，为了节省时间，第一次部分用例失败了，修复完之后，可以只测上次失败的用例

--lf，叫--last-failed，只重新运行上次运行失败的用例（或如果没有失败的话会全部跑）

--ff，叫--failed-firs...]]></description><category></category></item><item><title><![CDATA[pytest  -------  分布式执行测试（pytest-xdist）【十一】]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104532357</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104532357</guid><author>DreamTL</author><pubDate>Thu, 27 Feb 2020 11:14:51 +0800</pubDate><description><![CDATA[如果测试用例过多，执行完成需要很长时间，为此可以将用例分成多个部分，并行执行测试，这样可以缩短时间

为此需要用到pytest-xdist分布式 插件



步骤一：安装pip install pytest-xdist

转存失败重新上传取消



相当于模拟多cpu并行测试，在运行函数或命令行加个参数-n后面设置并行的数量即可



我了很好的展示分布式效果，在每个用例中都等待了3秒...]]></description><category></category></item><item><title><![CDATA[pytest ---- 重复执行用例（pytest-repeat）【十】]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104532330</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104532330</guid><author>DreamTL</author><pubDate>Thu, 27 Feb 2020 11:13:52 +0800</pubDate><description><![CDATA[pytest第十天 --重复执行用例（pytest-repeat）



场景：在做功能测试的时候，经常会遇到某个模块不稳定，偶然会出现一些bug，对于这种问题我们会针对此用例反复执行多次，然后复现此问题



在自动化测试的时候，也会出现偶然的bug，可以针对此用例进行重复执行测试



pytest-repeat是pytest的一个插件，用于重复执行单个用例或者多个用例，并可以指定...]]></description><category></category></item><item><title><![CDATA[pytest -------- 使用mark标签实现分类执行测试（九）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104532236</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104532236</guid><author>DreamTL</author><pubDate>Thu, 27 Feb 2020 11:11:49 +0800</pubDate><description><![CDATA[测试过程中可以使用标签将我们的测试用例进行分类，在测试的时候可以根据标签运行我们想要运行的测试用例

在要被标记的用例上添加标签 @pytest.mark.标签名（自定义），在运行的时候加上 -m参数，后面加上运行的标签名，在执行时只执行标签名的用例

下图如果执行执行test_01用例，可以在使用mark标签进行标记，在执行时候加一个 -m参数来进行过滤所有执行的用例（pytes...]]></description><category></category></item><item><title><![CDATA[pytest  ----- 将用例标记跳过或者失败skip /xfail（八）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104523729</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104523729</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 20:18:17 +0800</pubDate><description><![CDATA[存在一些用例执行不了，这时我们需要跳过这些用例，如果将用例删掉或者注释掉，后面用到了不是很方便，所以可以将其标记为跳过



@pytest.mark.skip() 标签来装饰该用例








...]]></description><category></category></item><item><title><![CDATA[pytest  ----  用例参数化 +  通过fixture中params参数及request对前置固件进行参数化（七）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104523255</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104523255</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 19:59:11 +0800</pubDate><description><![CDATA[场景：登录场景来说，正确用户进行登录、正确用户名错误的密码进行登录，用户名缺失等多种场景，通常情况下是写一个函数，然后里面传入不同的参数值，为此需要进行参数化

测试用例使用 @pytest.mark.parametrize 里面写了两个参数

第一个参数为字符串，代表参数别名，如果多个参数时，中间用逗号隔开

第二个参数为列表，必须为列表形式







多个参数时如下图所示：




...]]></description><category></category></item><item><title><![CDATA[pytest  ----- fixture 之 conftest.py 文件（六）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104522713</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104522713</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 19:27:46 +0800</pubDate><description><![CDATA[场景：如果多个py文件需要调用同一个 前置函数，或者是 可能调用多个不同的前置函数，如果每个前置函数都在每个py中写，感觉很麻烦，那如何处理呢？

为此pytest为大家提供一个 conftest.py 文件，可以将前置函数写在此文件中，然后在测试方法中传入conftest.py 中声明的前置函数名即可，不用导包



使用该文件规则如下：

1、conftest.py 文件名是固定的，不可以更...]]></description><category></category></item><item><title><![CDATA[Pytest ------  fixture 参数值传递 +固件之间相互调用 + 作用范围（五）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104521190</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104521190</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 18:11:55 +0800</pubDate><description><![CDATA[Fixture使用说明：


	fixture 函数命名不要以test开头，尽量与用例区分开
	
	
	一个fixture可以供多个函数来使用
	
	
	fixture可以有返回值，其返回值可以被函数来使用
	
	
	一个方法可以有多个fixture
	
	
	fixture之间可以相互调用
	


1、一个方法可以有多个fixture、一个固件可以供多个函数来使用，如下图所示：





2...]]></description><category></category></item><item><title><![CDATA[Pytest --------- fixture 使用（四）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104520716</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104520716</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 17:30:33 +0800</pubDate><description><![CDATA[一：fixture 概述：

在执行用例之前比如说进行登录操作、连接数据库等一些前置操作都可以放在fixture函数中

二：如何使用：

把一个函数定义为Fixture很简单，只能在函数声明之前加上“@pytest.fixture”。其他函数要来调用这个Fixture，只用把它当做一个输入的参数即可，当多个fixture方法，可以互相调用，

三种使用方式：

第一种：将fixture函数名作为...]]></description><category></category></item><item><title><![CDATA[pytest -------- pytest中的 setup 与 teardown实现用例的前后置条件执行（三）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104519979</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104519979</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 17:02:46 +0800</pubDate><description><![CDATA[unittest中有测试固件，用于在每个测试用例执行前后执行相关操作，通常情况下测试过程中会将一些相同的准备操作或者一些结束操作放在固件中，对于pytest如何来实现？

setup()和teardown()在测试方法执行之前与之后进行执行，此方法与 setup_method() 和teardown_method()方法作用是一样的





从截图来看，每次执行用例之前均会执行se...]]></description><category></category></item><item><title><![CDATA[pytest ------命令参数（二）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104519507</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104519507</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 16:43:36 +0800</pubDate><description><![CDATA[pytest 命令参数：

-q ：使用该命令后，将显示简单的结果（pytest -q）

-s ：使用该命令后，将用例的信息打印出来 （pytest -s）

-x ： 遇到错误时停止测试 （pytest -x）

-maxfail== ： 当用例错误个数达到指定数量时，停止测试 pytest --maxfail ==2

举例：

遇到错误时停止测试：（-x）





举例二： 当错误次数...]]></description><category></category></item><item><title><![CDATA[pytest ------- 环境搭建（一）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/104518658</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/104518658</guid><author>DreamTL</author><pubDate>Wed, 26 Feb 2020 16:20:42 +0800</pubDate><description><![CDATA[一：pytest 简述：

python 单元测试框架有 unittest、pytest，这里主要说pytest，unittest是python自带的一个框架，使用比较简洁

pytest 优点

可以进行单元测试；可以进行参数化、可以在测试过程中跳过某些用例，也可以将某些用例标记为重跑

可以进行分布式执行用例、还可以重复执行哪些失败的用例，可生成html报告

最重要一点具有丰富的第三方插件，...]]></description><category></category></item><item><title><![CDATA[Windows 下如何查看文件夹被哪个进程所占用]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/71216325</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/71216325</guid><author>DreamTL</author><pubDate>Fri, 05 May 2017 17:31:34 +0800</pubDate><description><![CDATA[场景： Jenkins  通过maven 打包时在clean 时提示 target 文件被占用


解决方法：


在开始搜索框中，输入“资源监视器”，打开资源监视器：，如下图所示：







在该窗口中，切换到cpu 页签，然后在 关联的句柄中，输入 文件名（target），按下回车键，即可查找到被占用的进程]]></description><category></category></item><item><title><![CDATA[Dos 命令（一）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/71216116</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/71216116</guid><author>DreamTL</author><pubDate>Fri, 05 May 2017 17:28:00 +0800</pubDate><description><![CDATA[场景一： Jenkins 构建时应报告会被覆盖，所以想着新建一个文件来保留，文件以当前时间来命名，因使用的是Windows，所以就需要Dos命令来实现


cmd 打开Dos 窗口： 输入如下命令：
echo "Ymd=%date:~,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%"     输出格式如下：


C:\Users\Adm]]></description><category></category></item><item><title><![CDATA[Jenkins 通过maven打包时，发现resource下的properties 配置文件未生成 ，导致在执行时报错]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/71215914</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/71215914</guid><author>DreamTL</author><pubDate>Fri, 05 May 2017 17:10:30 +0800</pubDate><description><![CDATA[场景： Jenkins 构建WebDriver 项目时，报如下图错误：






idea 运行时是没问题的，经过对比发现是因为Jenkins构建时，发现resource下的properties 配置文件未生成，找到不所以才提示错误


解决方法：
代码路径：




在pom.xml 中bulid  页签中添加如下配置：


resources>
  r]]></description><category></category></item><item><title><![CDATA[JavaScript 输入框值为1-10之间数字]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/70473863</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/70473863</guid><author>DreamTL</author><pubDate>Sat, 22 Apr 2017 19:18:07 +0800</pubDate><description><![CDATA[通过JavaScript来判断输入框值为1-10之间的数字，当输入非汉字时，弹出提示信息，当输入1-10之间时，弹出输入内容（以弹框的形式来进行提示）
 
代码如下： 通过   isNaN 函数来判断是否为数字，如果不是数字，返回true，为数字，返回false
 
 
html>
lang="en">

    charset="UTF-8">
    
    
        fu]]></description><category></category></item><item><title><![CDATA[Fiddler 工作原理]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/70405368</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/70405368</guid><author>DreamTL</author><pubDate>Sat, 22 Apr 2017 12:04:32 +0800</pubDate><description><![CDATA[1、Fiddler 工具介绍：
     Fiddler是一个通过代理的方式来进行抓包工具，运行时会在本地建立一个代理服务，默认地址：127.0.0.1:8888。Fiddler开启之后打开IE浏览器，IE的PROXY会自动变成127.0.0.1:8888，通过其来抓取IE浏览器与服务器之间的所有HTTP(s)请求，但是火狐、chrome需要手动设置代理。
 
2、Fiddler 工作原理]]></description><category></category></item><item><title><![CDATA[浅谈 PageObject模式]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/69951348</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/69951348</guid><author>DreamTL</author><pubDate>Mon, 10 Apr 2017 16:57:04 +0800</pubDate><description><![CDATA[做过UI自动化的都晓得，在做UI自动化时定位特别依赖页面，一旦页面发生变更就不得不跟着去修改页面定位。

在webdriver中，假设你想对一个元素定位操作，那么你可能会编写下面的代码：

driver.findElement(By.id("ad")).click();

发现问题：

你有10个地方对这个元素做了这个操作，哪天这个控件的元素变了，你就不得不去修改10个地方。
]]></description><category></category></item><item><title><![CDATA[JavaScript DOM 事件（三）]]></title><link>https://blog.youkuaiyun.com/DreamTL/article/details/69788670</link><guid>https://blog.youkuaiyun.com/DreamTL/article/details/69788670</guid><author>DreamTL</author><pubDate>Sat, 08 Apr 2017 23:04:19 +0800</pubDate><description><![CDATA[点击每个li节点，若li节点的文本值没有以^^ 开头，则加上，有则去掉

id="city">
    id="bj" name="beijing">北京
    id="sh" name="beijing">上海
    id="zz" name="beijing">郑州


具体实现代码如下：

window.onload = function(){
    var liNodes]]></description><category></category></item></channel></rss>