自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 python实用库

转自:https://github.com/jobbole/awesome-python-cn环境管理管理 Python 版本和环境的工具p– 非常简单的交互式 python 版本管理工具。 pyenv– 简单的 Python 版本管理工具。 Vex– 可以在虚拟环境中执行命令。 virtualenv– 创建独立 Python 环境的工具。 virtualenvwrap...

2020-03-03 10:26:21 620

原创 appium自动化测试-04Package及Activity介绍、获取

PackagePackage 包。只是在我们的app中这个Package是唯一的,就像你身份证号码一样。在我们做app自动化时,我们就需要知道他的Package,我们知道了Package那么也就知道我们需要对哪个app做自动化。 注意和.apk文件包名不同。ActivityAndroid中,activity是所有程序的根本,所有程序的流程都运行在activity之中,activity可...

2019-10-24 16:22:24 317

原创 appium自动化测试-03adb命令

启动adb服务adb start-server终止adb服务adb kill-server进入adb运行环境adb shell查看adb版本adb version连接真机模拟器adb connect 127.0.0.1:62001(ip端口)把电脑上的文件或文件夹传到模拟器里面adb push <本地路径> <远程路径&g...

2019-10-24 16:13:59 319

原创 appium自动化测试-02capability配置讲解

desired capability的功能是配置Appium会话。他们告诉Appium服务器您想要自动化的平台和应用程序。告诉server我们本次测试是浏览器还是app,是ios还是android以及android的版本信息等。如果capability不告诉server,那么server就不认识你。它是一组设置的键值对的集合,其中键对应设置的名称,而值对应设置的值。Capability主要分成...

2019-10-24 15:54:21 345

原创 appium自动化测试-01环境搭建

环境依赖Node.js Appium Appium-desktop Appium-Python-Client Python JDK Andriod SDK安装Node.js下载地址:https://nodejs.org/en/download/releases/安装完成后在按键Win+R输入cmd打开Windows 命令提示符,输入如下命令:node -v ,npm...

2019-10-24 15:18:02 165

转载 appium自动化测试-appium原理

先看整体流程图appium的整体架构是C/S模式,整体流程(返回顺序为逆向):脚本请求 ——> 4723端口appium server ——> 解析参数给PC端4724端口 ——> 发送给设备4724端口 ——>通过设备4724端口发给bootstrap.jar ——>Bootstrap.jar把命令发给uiautomator1、脚本请求 ——&g...

2019-10-22 09:57:59 511

原创 monkey入门-06小结

monkeymonkey安装启动 monkey事件 monkey命令参数 monkey脚本运行 monkey日志管理monkeyrunnermonkeyrunner安装启动 monkeyrunnerApI monkeyrunner 脚本编写monkey与monkeyrunner不足之处元素定位依赖于坐标点,稳定性差 不支持跨平台使用(iOS平台无法使用) 没有成熟系...

2019-10-21 11:58:54 117

原创 monkey入门-05monkeyrunner

MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Python的程序来模拟操作控制Android设备app,测试其稳定性并通过截屏可以方便地记录出现的问题。MonkeyRunner功能1.多设备控制:API可以跨多个设备,一次启动全部模拟器来实施测试套件;2.功能测试:为...

2019-10-21 11:57:18 132

原创 monkey入门-04自定义脚本

自定义脚本较为鸡肋,用的很少,依赖于坐标点点击,更换手机或者模拟器就可能无法运行。常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Monkey脚本的规范编写好脚本,存放到手机上,启动Monkey通过-f 参数调用脚本即可。获取元素坐标点位置Monkey脚本只能通过坐...

2019-10-21 11:24:41 242

原创 monkey入门-03参数

参数分类常规类参数 事件类参数 约束类参数 调试类参数常规类参数常规类参数包括帮助参数和日志信息参数。帮助参数用于输出Monkey命令使用指导;日志信息参数将日志分为三个级别,级别越高,日志的信息越详细。1.帮助类参数monkey -h2.日志级别$ adb shell monkey -v <event-count>-v:打印出日志信息,每个-v...

2019-10-21 10:47:52 110

原创 monkey入门-02事件

Monkey所执行的随机事件流中包含11大事件,分别是触摸事件、手势事件、二指缩放事件、轨迹事件、屏幕旋转事件、基本导航事件、主要导航事件、系统按键事件、启动Activity事件、键盘事件、其他类型事件。1.触摸事件触摸事件是指在屏幕某处按下并抬起的操作,可通过--pct-touch参数来配置其事件百分比。从Monkey执行该事件对外输出的日志可以看到。 该事件由一组Touch(ACTIO...

2019-10-21 10:27:40 97

原创 monkey入门-01简介及启动

简介Monkey程序是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录的Monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey.jar文件。用户主要是通过adb命令来启动Monkey的,Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。同时,M...

2019-10-21 10:21:03 622

原创 linux下测试环境搭建与常用命令

以java web项目为例一、安装JDK检查Linux是否已存在的JDK:rpm -qa|grep -i jdk;如果有JDK相关文件,那么就卸载:rpm -e 已安装的包1.通过FTP上传JDK压缩包;2.tar –zxvf 文件名解压JDK文件3.mv 旧文件名新文件名 修改文件名4.修改JDK环境变量vim / etc/profile...

2019-08-27 20:27:31 860

转载 软件测试中常用的linux命令整理

开关机sync:把内存中的数据写到磁盘中(关机、重启前都需先执行sync) shutdown -r now或reboot:立刻重启 shutdown -h now:立刻关机 shutdown -h 20:00:预定时间关闭系统(晚上8点关机,如果现在超过8点,则明晚8点) shutdown -h +10:预定时间关闭系统(10分钟后关机) shutdown -c:取消按预...

2019-08-17 10:13:35 496

原创 软件测试中常用的linux命令总结

1、修改ssh登陆密码命令:passwd2、新建一个名字为dbuser的Linux新用户:(sudo adduser dbuser)4、./frps -c ./frps.ini(FRP启动命令)5、lsof -i:7500(监听端口)6、sh reload.sh master(文件后缀为sh时,nginx启动命令);( 文件为执行文件启动命令:./nginx -s reload)7、sh...

2019-08-14 10:04:26 343

原创 python元类

元类的作用就是动态修改类的定义,就元类本身而言,它们其实是很简单的:1.拦截类的创建 2.修改类 3.返回修改之后的类元类是用来控制如何创建类的,正如类是创建对象的模板一样,即元类用于创建类,而类用于创建实例。type是python的一个内建元类,用来直接控制生成类,python中任何class定义的类其实都是type类实例化的对象# metaclass是创建类,所以必须从`typ...

2019-05-30 11:55:13 111

原创 python内置装饰器@staticmethod,@classmethod

2.@staticmethod,@classmethod有了@property装饰器的了解,这两个装饰器的原理是差不多的。@staticmethod返回的是一个staticmethod类对象,而@classmethod返回的是一个classmethod类对象。他们都是调用的是各自的__init__()构造函数。一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@stat...

2019-04-25 14:04:14 204

原创 python内置装饰器@property

内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些。Python内置有三大装饰器:@staticmethod(静态方法)、@classmethod(类方法)、@property(描述符),其中静态方法就是定义在类里的函数,并没有非要定义的必要;类方法则是在调用类属性、传递类对象时使用;而@property则是一个非常好用的语法糖。@property最大的...

2019-04-25 13:49:02 231

原创 python装饰器

python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象(函数的指针)。装饰器函数的外部函数传入我要装饰的函数名字,返回经过修饰后函数的名字;内层函数(闭包)负责修饰被修饰函数。从上面这段描述中我们需要记住装饰器的几点属性,以便后面能更好的理解:实质: 是一个函数参数:是你要装饰的函数名(并非函数调用)返回:是装...

2019-04-25 09:00:33 97

原创 python闭包函数

python是一种面向对象的编程语言,在python中一切皆对象,这样就使得变量所拥有的属性,函数也同样拥有。这样我们就可以理解在函数内创建一个函数的行为是完全合法的。这种函数被叫做内嵌函数,这种函数只可以在外部函数的作用域内被正常调用,在外部函数的作用域之外调用会报错。而如果内部函数里引用了外部函数里定义的对象(甚至是外层之外,但不是全局变量),那么此时内部函数就被称为闭包函数。闭包函数所引用的...

2019-04-24 14:44:08 210

原创 python中hasattr()、getattr()、setattr()函数的使用

hasattr(object, name)判断object对象中是否存在name属性,当然对于python的对象而言,属性包含变量和方法;有则返回True,没有则返回False;需要注意的是name参数是string类型,所以不管是要判断变量还是方法,其名称都以字符串形式传参;getattr和setattr也同样>>> class test():... nam...

2019-04-24 13:54:25 122

转载 Python方法:__init__,__new__,__class__的使用详解

转自:https://blog.csdn.net/qq_26442553/article/details/82464682因为python中所有类默认继承object类。而object类提供了了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性。可以使用dir()函数可以查看,虽然python提供了很多内建属性但实际开发中常用的不多。而很多系统提供的内建属性实际...

2019-04-22 16:32:35 233

原创 python单例模式练习

单例设计模式是怎么来的?单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。在面向对象的程序设计中,当业务并发量非常大时,那么就会出现重复创建相同的对象,每创建一个对象就会开辟一块内存空间,而这些对象其实是一模一样的,那么有没有办法使用得内存对象只创建一...

2019-03-20 11:35:14 225

原创 python练习

冒泡排序:a=[7,8,1,9,2,7,2,18,3,79]def bubble_sort(a): # i比较多少轮 for i in range(1,len(a)): # j表示每轮比较的元素的范围,因为每比较一轮就会排序好一个元素的位置, # 所以在下一轮比较的时候就少比较了一个元素,所以要减去i for j ...

2019-03-19 20:18:47 229

原创 python基础知识整理

1.列表和元组的区别主要是元组不可改变,列表是可变的2.如何实现多线程线程是轻量级的进程,多线程允许一次执行多个线程。众所周知,Python 是一种多线程语言,它有一个多线程包。GIL(全局解释器锁)确保一次执行单个线程。一个线程保存 GIL 并在将其传递给下一个线程之前执行一些操作,这就产生了并行执行的错觉。但实际上,只是线程轮流在 CPU 上。当然,所有传递都会增加执行的开销。...

2019-03-19 20:16:06 149

原创 selenium webdriver实现的原理及流程

用Selenium实现自动化,主要需要三个东西:1.自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)2.浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器3.浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。测试代码中包含了各种期望的对浏览器界面的操作,例如点击。测试代码通过给Webdriver发送指令,让Webdriv...

2019-03-12 11:19:36 5640 1

原创 2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化感觉自己会的东西比较少,而且不够深入,流于表面现制定一下今年大概的学习计划需持续巩固加强:python、ui自动化、接口自动化、sql等代码量需提升,敲的不够(重点)学习:1.移动端测试,appium等2.前端知识系统整理学习3.性能测试4.docker入门,环境搭建5.shell...

2019-03-08 14:32:22 193

原创 jmeter线程组的ramp-up period 设置

Ramp-Up period(in seconds):用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成1秒, 全部线程数设置成2个, JMeter 将每隔0.5秒建立一个线程(即ramp-up period时间内执行完所有...

2019-03-07 10:20:02 6789 2

原创 linux命令总结第二弹

系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显示CPU info...

2019-03-07 09:19:32 101

原创 Linux基础命令总结

默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是$表示当前为普通用户。我们了解linux由很多目录文件构成,那我们来学习第一个Linux命令:cd命令, cd /home ;解析:进入/home目录cd /root 进入/root目录 ;cd ../返回上一级目录;cd ./当前目录;(.和..可以理解为相对路径;例...

2019-03-06 11:08:09 126

原创 postman接口自动化测试实战

在网上找了一个接口来实践一下,因为接口地址每日有次数限制,就打码了。接口文档:名称 类型 必填 key String 是 keyWord String 是 查找关键词 page Int 否 请求页数,默认page=1 rows Int 否 返回记录条数,默认rows=20,最大50 ...

2019-03-04 16:03:58 1289

原创 postman基础教程-04run

Postman 工具自带了Runner功能,用于批量运行脚本。在运行时还可以使用外部的CSV或者json文件来指定数据左侧collections下保存的测试集,点击小三角,点击run按钮在runner页面中如下图,图1 是可以选择我们要运行的项目,图2是选择我们运行的环境,图3是运行次数和延迟时间,图4是选择的外部测试数据如csv点击run可以看到跑完了项目中所有的接口...

2019-03-04 15:26:38 1665

原创 postman基础教程-03断言

Postman可以在tests里面,用自带的脚本对接口进行测试,单击tests标签后可以看到右侧有个snippets栏,里面就是postman内置的测试脚本,辅助对接口进行测试。我们选择两个个脚本,分别验证status是否返回200,响应时间是否小鱼200ms,点击send,这时response的tests出现了一个1/2,说明一个用例通过测试,绿色pass说明验证通过,红色说明失败在...

2019-03-04 15:08:51 204

原创 postman基础教程-02环境变量

编写的API往往需要在多个环境下执行,而Postman 提供了两种类型的变量:环境变量和全局变量,从而很好的解决了这个问题。环境变量有效范围仅仅在于你所选取的环境,全局变量对所有的环境都试用api可能需要在拨通的环境中运行,所以api请求的服务器地址不能写死,希望是可以配置的,创建环境变量有多种方式。环境变量1.手工预先创建环境变量点击小眼睛按钮即可创建环境变量,第一个是环境变量...

2019-03-04 14:55:13 729

原创 postman基础教程-01简介

postman是一个比较简单方便的接口测试工具,会写几篇文章总结一下postman的基本使用postman上手容易,提供录制插件,提高Case编写速度,官方文档齐全,用户众多,但是也存在劣势比如可扩展性较差,无法与数据库结合,非开源,Case校验方式较少日常使用足够了,后面会总结一下用postman+newman+jenkins实现半自动化接口测试,以及python+requests+un...

2019-03-04 14:35:30 208

原创 Jmeter接口测试简介

关于jmeter基础可以看这两篇文章https://blog.csdn.net/u013434475/article/details/87891329https://blog.csdn.net/u013434475/article/details/87891483使用Jmeter接口测试1、首先右键添加一个线程组,然后我们重命名接口测试2、在线程组上添加一个Http默认...

2019-02-23 14:40:09 171

原创 badbody录制脚本

Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的。Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,下面我们来看如何使用badboy录制一个JMeter脚本,并供JMeter使用badbody安装通过Badboy的官方网站下载Badboy的...

2019-02-23 14:05:04 4514

原创 jmeter主要参数设置和聚合报告分析

1.创建一个简单的测试内容1.测试目标网站是www.baidu.com2.测试目的是该网站在负载达到20 QPS时的响应时间2.建立测试计划1.启动JMeter后,JMeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。2. 一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出...

2019-02-23 13:58:32 8662

原创 jmeter基础教程功能介绍

我们可以用jmeter进行性能测试和接口测试,本篇介绍jmeter基础功能一、jmeter能做什么1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试2.完全的可移植性和100%纯Java3.完全Swing的轻量级组件支持4.完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样5.精心的GUI设计允许快速操作和更精确的...

2019-02-23 13:45:18 4182

原创 持续集成jenkins基础使用

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,可用于定时执行python脚本。我们的ui自动化和接口自动化都会使用到这个工具,简单的介绍一下jenkins使用方法一、启动第一种启动方法,切换到jenkins.war存放的目录(随便哪个目录),输入如下命令:&gt; java -jar jenkins.war   #这样的话默认端口是8080若要指定端口...

2019-02-16 16:35:49 373

空空如也

空空如也

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

TA关注的人

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