自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

原创 详解JMeter命令行执行+生成HTML报告

为什么用命令行模式使用GUI方式启动jmeter,运行线程较多的测试时,会造成内存和CPU的大量消耗,导致客户机卡死;所以一般采用的方式是在GUI模式下调整测试脚本,再用命令行模式执行;命令行方式支持在多个环境下使用,windosw的dos环境下,也可以在linux环境上执行。注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本。怎么用执行命令jmeter -n -t <testplan filename> -l <listener filename&gt

2020-09-30 10:35:43 1418

原创 Linux命令--查看磁盘空间

今天用“web发布平台”发布测试的服务,两个节点中发现有一个节点没有发布成功,压测TPS始终上不去,排查后发现只有一个节点在打日志,另一个节点的服务进程都没有在运行,由此断定应该是没有发布成功,有点坑的是发布平台上的发布记录是SUCCESS的,打开发布日志后才看到有一个节点是发布失败的。从错误日志中发现报错的关键字“IO”,应该就是磁盘空间满了造成的,查看磁盘空间的命令之前用过,但是这次要删除的log中包含了很多子目录和文件,有些可以删除,有些是需要保留的,这样就需要分别查看子目录和文件的大小,过往的

2020-09-30 09:51:39 417

原创 Python接口请求及封装

基于http协议,最常用的是GET和POST两种方法。接口文档需要包含哪些信息:接口名称接口功能接口地址支持格式 json/xml请求方式请求示例请求参数(是否必填、数据类型、传递参数格式)返回参数说明以典型的(一两个)参数做为判断是否请求通过(重点是看响应的信息判断)一、GET1 import requests 2 import json 3 4 url = "http://v.juhe.cn/laohuangli/d" 5 para = {"key":"eeeeee

2020-09-30 09:46:06 690

原创 测试人员必须了解Python requests库的使用(二)

请求异常处理请求异常类型:实现代码:import requestsfrom requests import exceptions #引入exceptionsA:请求超时def timeout_request(): try: response = requests.get(build_uri('user/emails'), timeout=0.1) except exceptions.Timeout as e: print e.

2020-09-30 09:29:13 301

原创 测试人员必须了解Python requests库的使用

requests库官方使用手册地址:http://www.python-requests.org/en/master/;中文使用手册地址:http://cn.python-requests.org/zh_CN/latest/;requests库作者Kenneth Reitz个人主页:https://www.kennethreitz.org/;requests库github地址:https://github.com/requests/requests;requests库下载方法:pip install

2020-09-29 22:29:34 548

原创 Jenkins持续集成--安卓app

测试工程师为什么要掌握持续集成一个程序员如果想发布一个产品,他需要编码、编译、测试,发布的过程。对于一个企业来说,如果也想发布一个产品的话,同样的也是需要上述的过程,区别在于企业要发布的产品的需求会很多,如果有一个程序员来完成整个的过程的话,需要花费大量的时间,导致产品的研发周期过长,错过市场良机。为了避免这样的问题出现,企业一般会招聘多个程序员来协同编码,最后再将所有的代码进行集成,而在集成时往往会发现很多bug,这些问题是在研发编码的时候就已经存在了,如果在集成时才发现问题的话,会导致开发者在集成阶段

2020-09-29 15:41:16 690

原创 Android app性能测试小结(7个性能指标)

.性能测试的几个指标:性能测试环境准备:启动时间监控值的获取方法启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程;热启动:应用程序启动后点“back”键、“Home”键,应用程序退到后台,并未被完全“杀死”的状态,再次启动;冷启动启动App命令:adb shell am start -W -n package/activity停止App命令:adb shell am force-stop package获取package/activity的方法:1.先执行

2020-09-29 14:51:24 2620 1

原创 Fiddler、Postman、Python实现对接口的测试

写在前面:本文主要的章节规划:什么是接口测试,为什么要做接口测试?接口的由来:连接前后端及移动端,不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。另外,有的时候会直接调用别的公司的接口,比如银行的、淘宝的、支付宝的,此时也需要做接口测试以及验证数据。做接口测试的好处:节约时间,缩短项目时间提高工作效率提高系统的健壮性其中, get和post请求是用的最多的从表面上看,GET后面跟的数据要比POST请求多很多!而get和post提交的数据哪个更大一些呢?get是

2020-09-29 14:21:38 398

原创 Fiddler使用,超级详细,看完你就掌握

一,fiddler简介什么是fiddlerFiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。(摘自百度百科)fideler的组成fiddler的工作原理Fiddler 是以代理web服务器的形式工作的,它使用代

2020-09-29 13:48:22 571

原创 JMeter之Http协议接口性能测试

一.不同角色眼中的接口开发人员眼中的接口测试人员眼中的接口二.Http协议基本介绍Http协议栈中的位置Http协议响应码Http协议请求响应模型常用Http请求方式三.JMeter的get请求介绍及使用JMeter功能介绍JMeter的应用领域:1.Browser架构应用的性能2.Http协议接口功能与性能3.FTP协议接口功能与性能4.Mysql数据库性能5.MongoDB数据库性能6.支持自定义java组件开发g

2020-09-28 16:16:01 203

原创 测试进阶?你不得不会的Monkey压力测试

一.为什么要开展压力测试a.提高产品的稳定性b.提高产品的留存率二.什么时候开展压力测试a.首轮功能测试通过后b.下班后的夜间进行三.7个基础知识(理论部分)3.1 手动测试场景与自动测试场景Monkey测试工具介绍Monkey是发送伪随机用户事件的工具;Monkey在手机系统里;Monkey需要借助ADB使用;MonkeyScript测试命令集合介绍异常测试结果分析四.6个实践小案例一次Android App的压测实践需要准备的环境:1.Android SD

2020-09-28 15:36:37 269

原创 Unittest框架在App自动化中的使用

为什么需要使用框架实现自动化测试作为测试工程师,可能在代码能力上相比开发工程师要弱一点,所以我们在写脚本的时候就会相对容易的碰到更多的问题,如果有一个成熟的框架供给我们使用的话,可以帮助我们避免一些问题,在脚本编写过程中经常遇到的问题:1.代码混乱,难阅读2.重复编码,效率低3.需求变化,难维护如果一栋楼房的框架设计的不够合理,很可能会出现倒塌的情况,测试框架对我们编写自动化脚本的意义也同样重要,如果没有好的框架,脚本在执行过程中就会出现异常。自动化脚本的意义就是为了测试应用程序的,如果自动化脚

2020-09-28 14:35:48 411

原创 如何全面的设计测试用例—以登录功能为案例

关于测试用例设计,根据业务不同,能力不同,设计的测试用例也完全不同,以下是关于一个老掉牙的案例,“登录”功能。需求:做为用户,我想输入账号、密码及验证码,以便我能正常登录系统根据以上需求,不同的测试人员,可能会设计出来不同的测试用例来进行登录功能的测试,有兴趣的小伙伴,可以看一下自己有哪些没有想到,也欢迎小伙伴继续补充:登录用例设计-1输入已注册的用户名和正确的密码,验证是否登录成功输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确输入未注册的用户名和任意密码,验证是否登录失

2020-09-28 13:58:16 509

原创 robot framework:扩展SeleniumLibrary库 (自定义关键字)(三)

(一)自定义和浏览器相关的关键字PYTHON 版本:3.6,不同的版本可能有区别,自己注意下。SeleniumLibrary的扩展文档中提供了3种增加SeleniumLibrary功能的方式。(1)Plugin API(2)EventFiringWebDriver(3)Extending SeleniumLibrary(实际就是继承SeleniumLibrary库)这里采用继承SeleniumLibrary库的方式。目录结构如下:这里我们将上一篇中说到的关键字加进来BlogSelenium

2020-09-26 14:32:25 702

原创 robot framework:在RF中自定义chrome启动参数(二)

(一)在RF中自定义chrome启动参数这里主要是实现下面2个功能1、禁用chrome正受自动测试软件控制的提示2、设置默认的下载路径(一些导出、下载类的功能,将文件下载到指定路径下)自定义一个关键字from selenium.webdriver.chrome.options import Optionsclass MyKeyword(): def get_chrome_options(self,downloads_path): ''' 自定义ch

2020-09-26 14:27:21 1374 1

原创 robot framework:环境配置(基于python3)+在pycharm中编写及运行robot脚本(一)

使用pip安装robotframework框架和seleniumlibrary库pip install --upgrade robotframeworkpip install --upgrade robotframework-seleniumlibrary可以再安装一个测试数据编辑器(编辑器中直接运行就可以打开图形界面)pip install robotframework-ride配置pycharm1、路径:File-Setting-Plugins-Browse Repositories ,安装

2020-09-26 14:24:52 845

原创 掌握这些Linux常用命令,工作更轻松

帮助命令1、man: 例如 man ls2、help : 内置命令使用 help xxx,外部命令使用 xxx --help 。 可以使用type xxx判断是否内置命令3、info : 例如 info ls,info比help详细4、ubuntu man命令描述修改为中文:a、apt-get install manpages-zhb、sudo vi /etc/manpath.config(1)输入 :(2)输入1,$s#/usr/share/man#/usr/share/man/zh

2020-09-26 14:16:21 278

原创 jmeter笔记:通过jython调用python脚本

说明说明在jmeter中如何调用python脚本。jmeter版本:5.2.1操作系统:WINDOWS步骤:1、下载jython-standaloneXXX.JAR2、放到jmeter 的lib文件夹下。3、重启jmeter4、添加JSR223 Sampler (路径:Thread Group >Sampler>JSR223 Sampler)5、编写python脚本调用python脚本1 #希尔排序 2 def shellSort(A): 3 k = len(

2020-09-26 14:11:40 1961 1

原创 API自动化测试笔记(三):应用多线程+合并测试报告

(一)说明说明在API自动化如何使用多线程去执行测试用例,合并测试报告。不同测试框架有不同的地方,这里以unittest框架+BeautifulReport为例进行说明。步骤大概分为以下几步:1、获取所有测试套件。以[(测试套件1,0,),(测试套件, 1,)…]的格式返回2、应用concurrent.futures.ThreadPoolExecutor 将第一步的测试套件传给我们执行测试的方法,多线程并发执行用例,将测试报告放到临时目录下。3、将临时目录下的测试报告合并为一份测试报告(二)

2020-09-25 15:02:40 437

原创 API自动化测试笔记(二):测试数据

(一)说明相信不管是GUI自动化测试,亦或者是API自动化测试,都离不开测试数据。这里说的测试数据我理解分为2部分:1、用例执行前需要的前置条件,例如我验证正确账户、密码能否成功登录,首先就需要一个已经注册的用户。2、测试用例本身需要的输入及预期结果。例如:调用一个API,我需要设置不同的请求参数,验证不同请求参数下的响应是否符合预期。这里的请求参数和预期结果也是我们的测试数据。这里主要提供个思路,在API自动化,亦或者GUI自动化中,该怎么管理我们的测试数据(这里针对的是第二种测试数据)。思路大

2020-09-25 14:52:42 159

原创 API自动化测试笔记(一)

接口说明测试代码 1 import requests 2 3 data ={ 4 "q":"张三枫", 5 "count":20 6 } 7 #发送get请求,实际上就是https://api.douban.com/v2/user?q=张三枫&count=20 8 result = requests.get('https://api.douban.com/v2/user',data) 9 r = result.json()10 11 print(r)输

2020-09-25 14:10:05 348

原创 unittest 管理用例生成测试报告

# 登录方法的封装from appium import webdriverfrom time import sleepfrom python_selenium.Slide import swipeLeftdef login(user,pwd): caps = { "platformName": "Android", "deviceName": "127.0.0.1:21503", "platformVersion": "5.1.1", "a

2020-09-25 13:52:50 148

原创 web-自动化测试流程

1. 自动化测试流程(1) 需求分析(2) 挑选适合做自动化测试的功能(3) 设计测试用例(4) 搭建自动化测试环境 [可选](5) 设计自动化测试项目的架构 [可选](6) 编写代码(7) 执行测试用例(8) 生成测试报告并分析结果2、自动化项目框架自动化框架① 顺序:先编写工具类–>(父类)–>PO代码(对象库存–>操作层–>业务层)–>unittest框架编写脚本(数据驱动JSON读取)–>测试报告–>日志② 用了selenium和uni

2020-09-25 13:47:26 1345

原创 app自动化测试--adb常用API

adb常用APIDriver.current_activity 获取当前运行应用界面的启动名Driver.current_package 获取当前运行应用的包名Driver.contexts 获取当前应用执行的上下文环境 native(原生环境与非原生环境)Driver.close_app() 关闭appDriver.quit() 关闭服务连接Driver.install_app(r”pc中apk路径”) 安装应用r是把后面的内容定义为普通字符driver.remove_app(包名)

2020-09-25 13:44:52 589

原创 看完你就掌握——selenium的等待条件

selenium的显示等待在进行UI自动化测试的时候,我们为了保持用例的稳定性,往往要设置显示等待,显示等待就是说明确的要等到某个元素的出现或者元素的某些条件出现,比如可点击、可见等条件,如果在规定的时间之内都没有找到,那么就会抛出Exception.上面是我用selenium写的一个测试用例,展示了selenium中显示等待的使用方式,其中会使用到expected_conditions模块和WebDriverWait类,注意这里expected_conditions是一个py文件的文件名,也就是一个

2020-09-24 14:54:03 2139

原创 高级测试必须知道python装饰器在接口自动化测试中的应用

在讲解装饰器在接口自动化测试项目的应用之前,我们先来介绍一下python装饰器到底是个什么装饰器说装饰器就不得不提一下函数这个一等公民了,在python中函数有几个特性先来了解一下函数的一些特性函数也是对象在python中函数也是对象,可以把函数赋值给变量,比如下面这样:def func(message): print("打印一条message: {}".format(message)) send_message = funcsend_message("123")我们把函

2020-09-24 14:43:40 460

原创 打造自动化测试框架——利用tox

什么是toxtox官方文档的第一句话 standardize testing in Python,意思就是说标准化python中的测试,那是不是很适合测试人员来使用呢,我们来看看他究竟是什么?根据官方文档的解释,tox是一个管理测试虚拟环境的命令行工具,可以支持穿件隔离的python环境,在里面可以安装不同版本的python解释器和项目的各种依赖库,可以进行自动化测试、打包以及持续集成。tox能做什么创建测试虚拟环境运行静态代码分析与测试工具自动化构建包针对 tox 构建的软

2020-09-24 14:24:41 333

原创 你都知道吗——pycharm的这些配置

前言对于一枚pycharm工具的使用新手,正确了解这门工具的配置,在使用过程中遇到的很多问题也可以迎刃而解哦!!文章篇幅有限,本篇文章提供以下配置手段:1、字体大小调整2、显示你需要的工具窗口,比如终端命令行3、常用一些快捷键4、设置代码模板5、更换默认的用例运行库字体大小调整pycharm在安装后,默认的字体很小,为了方便编写代码,都会调的大一些。调整方式:Windows: File - Settings - Editor - FontMac: Pycharm - Preferen

2020-09-24 14:13:25 320

原创 Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

一、Jenkins 进入项目---->Configure1、设置项目代码从git中拉取2、设置钩子程序二、gitlab设置1、进入项目–>设置以上两个步骤设置完成就可以了。如果不能触发可能是gitlab hook插件没安装,安装下即可。点赞关注~~持续分享,可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。如果

2020-09-24 14:07:47 490

原创 测试必须了解掌握——python是如何进行参数传递的?

在分析python的参数传递是如何进行的之前,我们需要先来了解一下,python变量和赋值的基本原理,这样有助于我们更好的理解参数传递。python变量以及赋值数值从几行代码开始In [1]: a = 1In [2]: b = aIn [3]: a = a + 1我们先将1赋值给a,也就是a指向了1这个对象,在python中一切皆对象。接着b=a,则表示让b也指向了1这个对象,python中一个对象是可以被多个引用所指向。最后执行的a=a+1,这里需要注意一点,python的数据类型

2020-09-23 15:33:06 197

原创 实战——python框架Django商城项目之用户模块创建

创建用户APP整个项目会存在多个应用,需要存放在一个单独的文件包了,所以新建一个apps目录,管理所有子应用。在apps包目录下穿件users应用 python ../../manage.py startapp users这个时候呢,需要我们将新创建的应用注册到django里,可是这里我们修改了应用的管理目录,与默认的方式不同,如果还按照之前的方式注册APP肯定会报错,这个时候我们可以先查看一下django的导包路径,在dev文件中输入print(sys.path()) # 输出包的所有搜索路

2020-09-23 15:02:07 274

原创 实战——python框架Django商城项目之工程搭建

项目说明该电商项目类似于京东商城,主要模块有验证、用户、第三方登录、首页广告、商品、购物车、订单、支付以及后台管理系统。项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用jinja2模板引擎实现,局部刷新采用vue.js实现。项目运行机制如下:项目搭建工程创建项目使用码云进行源代码版本控制,在码云创建好后直接克隆到本地即可,然后在项目根目录下执行 virtualenv venv创建虚拟环境,source venv/bin/activat激活虚拟环境后,安装django后

2020-09-23 14:26:51 552

原创 测试工程师必须要掌握的shell变量知识

什么是变量本地变量:手动定义的,在当前系统的某个环境下才能生效,作用范围小普通变量:单引号:原字符输出,变量名=‘变量值’➜ shell name='tom'➜ shell echo $nametom双引号:变量名=“变量值”,看一下值当中有没有对其他变量的引用,如果有就获取变量值然后组合到一起输出➜ shell word="I am $name"➜ shell echo $wordI am tom直接命名不加任何引号:变量名=变量值➜ shell age=33➜

2020-09-23 14:15:27 197

原创 如何高效的设计一个自动化测试框架

在进行自动化框架设计之前我们先来看两个问题,什么是自动化框架,设计的时候应该注意什么原则,然后该怎么做?本文会以一个web端的UI自动化测试框架设计为例什么是框架特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。也就是说框架本身不解决特定的问题,它是通过扩展的各种组件或者工具来解决问题,并且它可以方便的添加或者修改部分组件的功

2020-09-23 14:07:00 246

原创 常见的SQL面试题(学生表_课程表_成绩表_教师表)

表架构Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表建表语句CREATE TABLE student ( s# INT, sname nvarchar(32), sage INT, ssex nvarchar(8) ) CREATE TABLE course ( c

2020-09-22 14:45:25 8639

原创 黑盒测试用例设计方法&理论结合实际 -> 场景法

一概念现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行二应用基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和

2020-09-22 14:25:59 327

原创 黑盒测试用例设计方法&理论结合实际 -> 边界值分析法

一. 概念边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。二. 边界值分析法的应用根据大量的测试统计数据,很多错误是发生在输入或输出范围的边界上,而不是发生在输入/输出范围的中间区域。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而

2020-09-22 14:07:22 640

原创 黑盒测试用例设计方法&理论结合实际 -> 错误推断法

一 概念基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。二 错误推断法的应用基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如, 输入数据和输出数据为0的情况;输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。例如,前面例子中成绩报告的程序,采用错误推测法还可补充设计一些测试用例:1) 程序是否把空格作为回答;2) 在回答记录中混有标准答案记录;3) 除了标题记录外,

2020-09-22 13:33:28 313

原创 黑盒测试用例设计方法&理论结合实际 -> 因果图法

一. 概念因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况二. 因果图法的应用等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,

2020-09-22 13:31:24 607

原创 黑盒测试用例设计方法&理论结合实际 -> 判定表驱动法

一. 概念判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。二. 判定表驱动法的应用判定表的优点:a. 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。b. 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题阅读指南”判定表:nullnull123456问题觉得疲倦?YYYYNN问题感

2020-09-21 14:47:53 838

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除