- 博客(70)
- 收藏
- 关注
原创 pytest -------- 生成测试报告+ 定制报告(allure生成报告)测试报告生成工具Allure 集成到pytest中【十三】
allure是一款开源的,专门用来生成测试结果的一个工具,allure可以与很多的测试框架集成,比如java的junittestngpython的pytest等alluer会将测试用例的执行数据保存到xml文件中去,再利用allure的命令行将文件转换成html形式呈现出来第一步:安装Allure (可以去官网上下载: http://repo.maven.apache.org/...
2020-02-27 11:21:18
2840
原创 pytest --------只运行上次失败用例(--lf 和 --ff)【十二】
当开发修复完bug后,我们一般是重点测上次失败的用例那自动化测试也一样,当用例特别多时,为了节省时间,第一部分用例失败了,修复完之后,可以只测试上次失败的用例当用例特别多的时候,为了节省时间,第一次部分用例失败了,修复完之后,可以只测上次失败的用例--lf,叫--last-failed,只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)--ff,叫--failed-firs...
2020-02-27 11:17:37
993
原创 pytest ------- 分布式执行测试(pytest-xdist)【十一】
如果测试用例过多,执行完成需要很长时间,为此可以将用例分成多个部分,并行执行测试,这样可以缩短时间为此需要用到pytest-xdist分布式 插件步骤一:安装pip install pytest-xdist转存失败重新上传取消相当于模拟多cpu并行测试,在运行函数或命令行加个参数-n后面设置并行的数量即可我了很好的展示分布式效果,在每个用例中都等待了3秒...
2020-02-27 11:14:51
1069
原创 pytest ---- 重复执行用例(pytest-repeat)【十】
pytest第十天 --重复执行用例(pytest-repeat)场景:在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,然后复现此问题在自动化测试的时候,也会出现偶然的bug,可以针对此用例进行重复执行测试pytest-repeat是pytest的一个插件,用于重复执行单个用例或者多个用例,并可以指定...
2020-02-27 11:13:52
2032
原创 pytest -------- 使用mark标签实现分类执行测试(九)
测试过程中可以使用标签将我们的测试用例进行分类,在测试的时候可以根据标签运行我们想要运行的测试用例在要被标记的用例上添加标签 @pytest.mark.标签名(自定义),在运行的时候加上 -m参数,后面加上运行的标签名,在执行时只执行标签名的用例下图如果执行执行test_01用例,可以在使用mark标签进行标记,在执行时候加一个 -m参数来进行过滤所有执行的用例(pytes...
2020-02-27 11:11:49
1558
原创 pytest ----- 将用例标记跳过或者失败skip /xfail(八)
存在一些用例执行不了,这时我们需要跳过这些用例,如果将用例删掉或者注释掉,后面用到了不是很方便,所以可以将其标记为跳过@pytest.mark.skip() 标签来装饰该用例...
2020-02-26 20:18:17
643
原创 pytest ---- 用例参数化 + 通过fixture中params参数及request对前置固件进行参数化(七)
场景:登录场景来说,正确用户进行登录、正确用户名错误的密码进行登录,用户名缺失等多种场景,通常情况下是写一个函数,然后里面传入不同的参数值,为此需要进行参数化测试用例使用 @pytest.mark.parametrize 里面写了两个参数第一个参数为字符串,代表参数别名,如果多个参数时,中间用逗号隔开第二个参数为列表,必须为列表形式多个参数时如下图所示:...
2020-02-26 19:59:11
874
原创 pytest ----- fixture 之 conftest.py 文件(六)
场景:如果多个py文件需要调用同一个 前置函数,或者是 可能调用多个不同的前置函数,如果每个前置函数都在每个py中写,感觉很麻烦,那如何处理呢?为此pytest为大家提供一个 conftest.py 文件,可以将前置函数写在此文件中,然后在测试方法中传入conftest.py 中声明的前置函数名即可,不用导包使用该文件规则如下:1、conftest.py 文件名是固定的,不可以更...
2020-02-26 19:27:46
706
原创 Pytest ------ fixture 参数值传递 +固件之间相互调用 + 作用范围(五)
Fixture使用说明: fixture 函数命名不要以test开头,尽量与用例区分开 一个fixture可以供多个函数来使用 fixture可以有返回值,其返回值可以被函数来使用 一个方法可以有多个fixture fixture之间可以相互调用 1、一个方法可以有多个fixture、一个固件可以供多个函数来使用,如下图所示:2...
2020-02-26 18:11:55
3152
原创 Pytest --------- fixture 使用(四)
一:fixture 概述:在执行用例之前比如说进行登录操作、连接数据库等一些前置操作都可以放在fixture函数中二:如何使用:把一个函数定义为Fixture很简单,只能在函数声明之前加上“@pytest.fixture”。其他函数要来调用这个Fixture,只用把它当做一个输入的参数即可,当多个fixture方法,可以互相调用,三种使用方式:第一种:将fixture函数名作为...
2020-02-26 17:30:33
330
原创 pytest -------- pytest中的 setup 与 teardown实现用例的前后置条件执行(三)
unittest中有测试固件,用于在每个测试用例执行前后执行相关操作,通常情况下测试过程中会将一些相同的准备操作或者一些结束操作放在固件中,对于pytest如何来实现?setup()和teardown()在测试方法执行之前与之后进行执行,此方法与 setup_method() 和teardown_method()方法作用是一样的从截图来看,每次执行用例之前均会执行se...
2020-02-26 17:02:46
877
原创 pytest ------命令参数(二)
pytest 命令参数:-q :使用该命令后,将显示简单的结果(pytest -q)-s :使用该命令后,将用例的信息打印出来 (pytest -s)-x : 遇到错误时停止测试 (pytest -x)-maxfail== : 当用例错误个数达到指定数量时,停止测试 pytest --maxfail ==2举例:遇到错误时停止测试:(-x)举例二: 当错误次数...
2020-02-26 16:43:36
508
原创 pytest ------- 环境搭建(一)
一:pytest 简述:python 单元测试框架有 unittest、pytest,这里主要说pytest,unittest是python自带的一个框架,使用比较简洁pytest 优点可以进行单元测试;可以进行参数化、可以在测试过程中跳过某些用例,也可以将某些用例标记为重跑可以进行分布式执行用例、还可以重复执行哪些失败的用例,可生成html报告最重要一点具有丰富的第三方插件,...
2020-02-26 16:20:42
933
原创 Windows 下如何查看文件夹被哪个进程所占用
场景: Jenkins 通过maven 打包时在clean 时提示 target 文件被占用解决方法:在开始搜索框中,输入“资源监视器”,打开资源监视器:,如下图所示:在该窗口中,切换到cpu 页签,然后在 关联的句柄中,输入 文件名(target),按下回车键,即可查找到被占用的进程
2017-05-05 17:31:34
30781
1
原创 Dos 命令(一)
场景一: Jenkins 构建时应报告会被覆盖,所以想着新建一个文件来保留,文件以当前时间来命名,因使用的是Windows,所以就需要Dos命令来实现cmd 打开Dos 窗口: 输入如下命令:echo "Ymd=%date:~,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%" 输出格式如下:C:\Users\Adm
2017-05-05 17:28:00
952
原创 Jenkins 通过maven打包时,发现resource下的properties 配置文件未生成 ,导致在执行时报错
场景: Jenkins 构建WebDriver 项目时,报如下图错误:idea 运行时是没问题的,经过对比发现是因为Jenkins构建时,发现resource下的properties 配置文件未生成,找到不所以才提示错误解决方法:代码路径:在pom.xml 中bulid 页签中添加如下配置:resources> r
2017-05-05 17:10:30
5213
原创 JavaScript 输入框值为1-10之间数字
通过JavaScript来判断输入框值为1-10之间的数字,当输入非汉字时,弹出提示信息,当输入1-10之间时,弹出输入内容(以弹框的形式来进行提示) 代码如下: 通过 isNaN 函数来判断是否为数字,如果不是数字,返回true,为数字,返回false html>lang="en"> charset="UTF-8"> fu
2017-04-22 19:18:07
5231
转载 Fiddler 工作原理
1、Fiddler 工具介绍: Fiddler是一个通过代理的方式来进行抓包工具,运行时会在本地建立一个代理服务,默认地址:127.0.0.1:8888。Fiddler开启之后打开IE浏览器,IE的PROXY会自动变成127.0.0.1:8888,通过其来抓取IE浏览器与服务器之间的所有HTTP(s)请求,但是火狐、chrome需要手动设置代理。 2、Fiddler 工作原理
2017-04-22 12:04:32
8381
转载 浅谈 PageObject模式
做过UI自动化的都晓得,在做UI自动化时定位特别依赖页面,一旦页面发生变更就不得不跟着去修改页面定位。在webdriver中,假设你想对一个元素定位操作,那么你可能会编写下面的代码:driver.findElement(By.id("ad")).click();发现问题:你有10个地方对这个元素做了这个操作,哪天这个控件的元素变了,你就不得不去修改10个地方。
2017-04-10 16:57:04
1843
原创 JavaScript DOM 事件(三)
点击每个li节点,若li节点的文本值没有以^^ 开头,则加上,有则去掉id="city"> id="bj" name="beijing">北京 id="sh" name="beijing">上海 id="zz" name="beijing">郑州具体实现代码如下:window.onload = function(){ var liNodes
2017-04-08 23:04:19
499
原创 JavaScript DOM 事件(二)
如下图:实现点击每个li节点,都弹出其文本值喜欢城市id="city"> id="bj" name="beijing">北京 id="sh" name="beijing">上海 id="zz" name="beijing">郑州代码如下:window.onload = function(){// 点击每个li节点,都弹出其文本值var
2017-04-08 22:59:32
414
原创 JavaScript DOM 操作(一)
DOM: Document Object Model(文本对象模型),DOM 是针对xml(html的基于树的API)DOM 树节点:主节点、子节点、父节点元素节点、属性节点、文本节点1、那对于HTML来讲,可以在哪个位置来添加JS呢1.1、直接在HTML页面中书写代码缺点:JS和HTML进行了耦合,不利于代码的维护如果click 响应函数是比较
2017-04-08 21:57:15
508
原创 HTML学习(一)
首先说下什么是HTML:百度百科的结果是:HTML是用来描述网页的一种语言,指的是超文本标记语言,不是一种编程语言,是一种标记语言1、HTML的基础在HTML中有标题、段落、链接、图像等组成1.1 HTML的标题标题是通过 标签来进行定义,其中 标签表示一个水平分割线1.2、HTML的段落段落是通过 标签来进行定义,其中 标签表示换行1.3、HTML的连
2017-04-08 20:07:49
397
原创 JMeter 中_time 函数的使用(时间戳、当前时间)
有时在接口测试时,其参数需要为时间戳或者是日期格式的数据。针对此问题,可以使用JMeter自带的_time 函数来解决以上问题 操作步骤:1、通过函数助手,生成一个_time 函数: 2、如果参数为时间戳,那公式为:${__time(,)} : 默认该公式精确到毫秒级别, 13位数${__time(/1000,)} : 该公式精确到秒级别, 10位数
2017-04-03 10:28:16
55370
3
转载 JMeter 资源文件接口请求
请求抓包资源文件的url地址: http://Host/video%2Fgao1shuxue-shuliangji.mp4注:Host地址用Host代替,下同因为没有写过这类型的接口请求,首先试着在网页端(清除缓冲)输入该url后,查看网络信息:发现有3个同样的接口进行请求,一个返回值是200,另外两个的返回值是206 让我们看一下206返回码 206 Part
2017-04-03 10:04:27
1166
原创 JMeter 通过JSON Extractor 插件来提取响应结果
接口响应结果,通常为HTML、JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取。对于JSON格式的数据,可以通过正则表达式、JSON Extractor插件、BeanShell 来提取。本次说下如何通过JSON Extractor 插件来提取JSON响应结果。比如说,接口返回的JSON响应结果如下格式,如何获取 id 为12341的数据
2017-04-03 08:11:07
19295
原创 JMeter 中Random 随机函数的使用
场景:在做接口测试时,比如说要求用户的手机号码不允许重复,那此时可以通过Random 随机函数来解决此问题:1、在JMeter 工具中,选择{选项-函数助手对话框-} 函数助手中选择 Random ,具体配置如下图所示: 备注: id 为生成随机数变量的名称,可以自行定义在上图界面中,填写完前置条件后,点击“生成”按钮,会生成一个如红色箭头的函数 2、新增一个Debug
2017-04-02 15:29:23
32484
2
原创 Liunx 如何查看80端口被哪个程序所占用
场景:启服务时一直报8080端口被占用最笨的方法是把该服务器上所有的进程都给kill 了,但是这也不现实解决方:1、首先查看下 8080 端口的使用情况netstat -anp|grep 8080 从截图中可以看到 8080 端口被 进程 9938 (PID) 所占用2、那下面就根据这个PID 来查看被哪个程序在使用netstat
2017-03-31 15:59:53
10528
转载 JMeter 测试WebService协议
Jmeter本身不支持websocket协议的,所以需要安装第三方的插件还有6个依赖包。首先,我们需要准备Jmeter的WebSocket协议的支持插件: JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar这插件依赖一下几个jar包1、jetty-http-9.1.2.v20140210.jar2、jetty-io-9.1.2.v201402
2017-03-31 14:49:49
1743
原创 JMeter 通过CSV Data Set Config进行参数化时,出现乱码
场景:参数化文件中,含有汉字,在进行参数化的时候,响应数据显示乱码,如下图所示:解决方法:将 File encoding 设置修改为: gb2312 即可运行后结果显示为:
2017-03-29 12:15:03
5952
4
转载 Linux free 命令
在看过网友写的一篇名为《Buffer和Cache的区别》http://zhumeng8337797.blog.163.com/blog/static/100768914201110244740147/文章里也涉及到了常用的top和free命令,所以将文中非常有意义的free命令的参数含义备份到这里,以下内容均源自原文,只是我把它们用更加直观的图来记录一下而已:“free命令相对于top
2017-03-17 14:36:07
648
转载 JMeter特殊情况二:针对某些请求数据每次请求都是变化的情况
转载地址:http://blog.csdn.NET/quiet_girl/article/details/50579240 概要:某些post请求,例如,登录的请求除了有我们再页面上需要输入的一些值(用户名、密码、是否记住密码等)之外,还有其他的参数,例如token等等,而且这些参数不固定,也就是说每一次post请求这些参数都不一样,那么针对这样的请求,我们就不能够直接给参数赋值,而需要动
2017-03-07 17:25:30
1066
转载 JMeter分布式测试
在使用 JMeter 进行性能测试时,难免遇到要求并发请求数比较的场景,此时单台测试机的配置(CPU、内存、带宽等)可能无法支持此性能测试场景。因而,此时 JMeter 提供的分布式测试功能就有了用武之地。下面就以 JMeter 3.0 版本进行实例讲解,敬请参阅!一、JMeter分布式执行原理JMeter分布式执行原理如下图所示:调度机(Controller)
2017-03-06 14:21:12
988
转载 接口测试从零开始系列_mock技术使用
1、什么情况下会使用mock技术 (1)需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑 ----------比如被测代码中需要依赖第三方接口返回值进行逻辑处理,可能因为网络或者其他环境因素,调用第三方经常会中断或者失败,无法对被测单元进行测试,这个时候就可以使用mock技术来将被测单元和依赖模块独立开来,使得测
2017-02-08 10:02:39
2231
转载 webdriver结合tesseract-ocr处理简单验证码
使用OCR自动化识别,一般识别率不是太高,处理一般简单验证码还是没问题,这里使用的是Tesseract-OCR,下载地址:http://pan.baidu.com/s/1kUGaw8R怎么使用呢?首先,环境变量path添加tesseract-ocr的安装路径,然后使用命令窗口查看:如果出现如上输出,表示安装正常。我准备了一张验证码cp.png放在e盘te
2017-01-20 16:40:38
1072
原创 将字符串【"Hello world" 】 倒序结果为【"world Hello " 】
将字符串【"Hello world" 】 倒序结果为【"world Hello " 】具体代码如下:public void exchange(){ String arr= "Hello world"; // 每个空格处进行分割 String s[] = arr.split(" "); // 通过循环输出数组内容
2017-01-14 09:05:36
8929
原创 TestNg多线程—— 并行执行测试
多线程并行执行测试,可以通过参数设置来实现不同级别的多线程配置测试1、test级别的多线程测试,每个标签下的所有方法将在同一个线程中执行,不同的是在不同的线程来运行的。修改配置如下:其中thread-count 表示启动的线程数 , parallel 参数用例定义平行化的级别:备注: 当前测试规划的执行过程中,为每个测试用例的执行使用单独的线程,最多并发2
2016-12-22 15:24:08
9637
原创 appium 通过testng 实现在不同的测试机上并行执行测试用例
在不同设备上同时运行不同的测试用例,在此使用两个安卓设备,均是安卓5.0,其中一个是模拟器,一个是真机操作步骤如下:1、测试类的代码如下:public class Case { private AndroidDriver driver;// @Parameters({"port","udid"}) @Test(dataProvid
2016-12-22 15:14:50
3040
原创 appium 如何定位webview元素
问题:投资交易时跳转到第三方平台输入交易密码,该页面是一个h5页面,具体页面定位如下图所示:如何针对这种h5页面进行定位操作呢解决方法:1、模拟器中打开h5页面,然后打开chrome浏览器,在地址栏中输入【 chrome://inspect】,界面如下因没有进行翻墙,所以点击打开页面是空白的,那如何才能看到页面呢,在此偷了一次小巧,从chrome浏览器中将url连接地址粘贴
2016-12-21 12:06:30
8124
原创 java中解决double计算精度不准确问题
现象:因需要对比投资成功前与投资成功后前后的剩余金额的断言,在断言的时候发现针对double类型计算时会出现精度计算问题:例如使用代码如下:如上图会因精度导致断言失败。最后使用 DecimalFormat 类将数字进行格式化,代码如下:DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以
2016-12-13 15:20:51
4893
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人