软件测试
TesterAllen
理想还很远,但今天你努力了吗?学的越多,会的越少
展开
-
【测试原理与设计】理解常见异常值测试-null、空值
日常测试工作中,除了正常值的测试,我们还需要对参数的异常值进行测试,这其中要问起来,很多人都可以脱口而出需要测试null、空值等等。但是要问为什么要测?具体怎么测?测试的结果说明了什么问题?可能就不尽然能说的清楚了,我自己也是遇到过这种情况,反问自己这三个问题,说的出来一些,又好像不是那么确定,心里还是有点虚~1、Bug现象日常测试或生活中可能会出现如下现象:登录用户,用户名处显示“你好,尊敬的用户null”。查看商品信息,显示商品信息为,商品名:null,价格:null。发送短信,短信信息.原创 2020-06-01 16:25:42 · 3731 阅读 · 1 评论 -
基于Charles,如何利用代理技术进行接口mock测试(一)
1、工具选择作为一名测试工程师,抓包是最常用的分析问题的手段,而Charles又是最常用的代理工具,之所以使用它有一下几个原因:代理功能http/https、socks5限速模拟断点调试转发映射:让发往a网站的请求返回b网站的内容重写:自动把请求和内容篡改掉工具:拼装请求、重放请求、重读请求上面提到了对Charles代理工具的种种分析,学海无涯,每个知识点...原创 2020-01-08 11:12:06 · 1595 阅读 · 0 评论 -
以AppCrawler的配置文件完成定制化的自动遍历测试(实操)-02
1、前情回顾在此之前,分别通过两篇文章介绍了自动遍历的测试需求、工具选择和AppCrawler的环境安装、启动及配置文件字段基本含义,具体可参考博客:初探自动遍历测试工具-AppCrawler以AppCrawler的配置文件完成定制化的自动遍历测试(基础)-01这里将以实际案例更加细致的说明配置文件的用法和一些特殊场景的处理2、实操演示2.1 常规使用下面我们继续之前的例子,在雪球搜...原创 2019-12-04 17:16:32 · 4155 阅读 · 9 评论 -
测试工作常用Linux shell命令-Linux三剑客之sed
sed:stream editor 根据定位到的数据行修改数据sed修改表达式:sed 's/待修改/修改结果/'注意说明表达式单引号中的s表示修改,/ 符号表示分隔,实际上将/换成其他符号也可以,只要能起到分隔作用就OK[16210504@izuf60jasqavbxb9efockpz ~]$ echo "aaa|bbb}|cccbbb" | sed 's/bbb/BBB/'...原创 2019-09-02 19:35:10 · 212 阅读 · 0 评论 -
测试工作常用Linux shell命令-bash基础之bash运行环境
1、shell运行环境概念* bash下还可以再重新启动一个shell,这个shell是sub shell(子shell),原shell会复 制自身给他。在sub shell中定义的变量,会随着sub shell的消亡而消失 * () 子shell中运行* $(ls) 表示执行ls后的结果,与``作用一致,不过可以嵌套* {} 当前shell中执行* $$ 当前脚本执行的pid* ...原创 2019-09-02 17:23:13 · 647 阅读 · 0 评论 -
测试工作常用Linux shell命令-bash基础之逻辑控制
* 条件 if* 分支 case* 循环 for while until select Break 和 continue由于平常测试工作中用到的几乎就是if、for、while,所以这里也就只重点介绍这3中用法if结构* if [ condition ] ; then ...;fi* if [ condition ] ; then ...;else ...;fi * if [ ...原创 2019-09-02 11:07:12 · 232 阅读 · 0 评论 -
测试工作常用Linux shell命令-bash基础之变量
对于bash的介绍,网上一大堆,这里不赘述1、变量定义* a=1* b=hello_test* c="hello test"* d='hello test "做一名优秀的测试工程师"'* e=\`ls`注意说明* = 左右不要有空格* 如果内容有空格,需要使用单引号或者双引号* 双引号支持转义 $开头的变量会被自动替换2、变量使用* echo $a * echo ${...原创 2019-09-01 21:11:35 · 472 阅读 · 0 评论 -
测试工作常用Linux命令-Linux三剑客之awk
awk = “Aho Weiberger and Kernighan” 三个作者的姓的第一个字母awk是Linux下的一个命令,同时也是一种语言解析引擎awk具备完整的编程特性。比如执行命令,网络请求等精通awk,是一个Linux工作者的必备技能语法:awk ‘pattern{action}’awk pattern语法awk理论上可以代替grepawk ‘pattern{act...原创 2019-09-01 10:49:44 · 337 阅读 · 0 评论 -
测试工作常用Linux命令-查看帮助文档命令--help和man有何区别(以curl命令为例)
工作中查看Linux命令的帮助文档可以有两种方式,以curl命令为例:curl --helpman curlcurl命令可以对URL地址发起请求,有-s、 -I、 -v等等命令以-s、-I命令为例,先来看看–help查询到的帮助信息:-s --silent Silent mode (don't output anything)-I, --head ...原创 2019-08-31 13:06:24 · 928 阅读 · 0 评论 -
测试工作常用Linux命令-Linux三剑客之grep
grep-global regular expression print-全局正则表达式打印可用于数据查找定位先列举出测试工作常用的grep命令和意义:grep pattern filegrep -i pattern file 忽略大小写grep -v pattern file 不显示匹配行grep -o pattern file 只把每个匹配的内容独立的行显示grep -...原创 2019-09-03 10:28:18 · 356 阅读 · 0 评论 -
测试工作常用Linux shell命令-bash基础之脚本编写
脚本涉及* 注释* 传入参数* 函数* 执行* 调试1、注释#以后的语句,shell不会解析。 多行注释可以考虑采用:<<2、传参$0 表示执行的程序,是相对于执行目录的路径;$1,$2,$3分别表示第几个参数。bash最多只支持传入9个参数,如果超过了9个,想要传入的话就需要在传入参数的索引外加上花括号{}3、函数[function] name() ...原创 2019-09-03 17:52:34 · 665 阅读 · 0 评论 -
测试工作常用Linux shell命令-去除空白行及两种空白行去除时的注意事项(基于sed)
日常工作中,有些文档里的内容可能并不都是我们想要的,比如说一些注释什么的。如下进入/etc/passwd,发现前10行是有注释的,也保不准其他还有什么地方有注释,那么现在需求就是:去除内容中的注释行,并且产生的空白行也不要。 1 ## 2 # User Database 3 # 4 # Note that this file is consulte...原创 2019-09-06 13:21:33 · 1126 阅读 · 0 评论 -
测试工作常用Linux shell命令-top与ps命令统计某进程CPU、MEM以及grep --line-buffered的应用
先来看ps命令,通过ps -aux 可以查看到进程的CPU和MEM等信息:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.3 191808 3764 ? Ss 2018 2:44 /usr/lib/systemd/systemd...原创 2019-09-09 00:08:26 · 2775 阅读 · 4 评论 -
01《穿越时空的git》科幻小电影-Git创建版本库和常用命令操作-提交、回退、撤销、删除
一、创建版本库what is 版本库?无论我们平常使用git的频率如何,但是从事IT这个行业的小伙伴一定经常听到有人在说,哪个哪个牛X的项目在哪个仓库,哪个项目的仓库被人恶意添加issue(之前就听说了阿波罗计划的代码仓库中issue被很多无关的中文评论占楼~哎,咱们测试工程师一定不要这样做,为这个行业尽一份力);说了这么多废话,其实我们平常说的仓库就是版本库,版本库又名仓库,英文名叫repo...原创 2019-09-19 19:47:51 · 650 阅读 · 0 评论 -
02 GitHub的基本使用与踩坑-从零创建项目,第一次的各种提示报错,一铲子填平!
之前介绍过Git的基本原理和常用的基本操作,有需要的小伙伴可参考博客:《穿越时空的git》科幻小电影-Git创建版本库和常用命令操作-提交、回退、撤销、删除1、申请GitHub账号这个就不多说了,大家自行百度或Google吧哈,这里默认大家都已经有GitHub账号了~2、配置GitHub(如果已经配置好的小伙伴可以跳过这部分)2.1)踩坑时刻第一次使用,如果没有配置好,会遇到各种问题...原创 2019-09-20 10:33:16 · 1087 阅读 · 0 评论 -
03 GitHub的基本使用-fork、clone、merge PR、fetch、IDE中的Git集成
1、ForkGitHub上我们可以fork别人的项目,为了与别人产生一种协作关系,将他人的项目在自己本地创建也一个,这里以testerhome社区的Hogwarts测试学院的演练环境做演示:1.1) 点击fork按钮对项目进行fork:1.2)fork完成后就可以在我们自己的GitHub账户下见到被fork的项目:2、Clone2.1)接着我们使用git clone命令将f...原创 2019-09-22 00:45:01 · 1048 阅读 · 0 评论 -
04 Git的分支管理策略简介与演示-基于GitHub
1、Centralized workflows类似于SVN这种集中式版本管理,三年前刚来上海工作时候,在华为驻场上班,华为用的就是SVN,印象最深的就是那个小乌龟的图标;后来到外面工作,渐渐发现用Git的非常多,慢慢学习了解发现Git这种分布式的版本管理确实很好很强大,后面也就重点学习Git的分支管理策略了(其实SVN我现在压根就不会了,哈哈。。。)2、特性分支工作流(Feature Bra...原创 2019-09-22 11:25:08 · 426 阅读 · 0 评论 -
05 Git的分支管理策略-Gitflow,基于GitLab演示feature、develop、release、hotfixes branch
先以GitLab上的一张经典的图打头,作为一个总体概览,也方便理解分支的管理和走向:1、场景预设现假设公司有名为Hogwarts_Online2的开发项目,其中包含了上线分支master,开发分支develop,测试分支release,和个人开发的特性分支<feature branch>2、特性分支与develop分支2.1)与远程仓库建立连接,在本地创建自己的分支,并拉取...原创 2019-09-24 00:01:02 · 2247 阅读 · 5 评论 -
测试工作常用Linux shell命令-shell输入输出、文件/网络/性能
文件Linux中,everything is file查询帮助文档:man可对任何命令查看帮助文档,比如man ls磁盘:dfdf -f :查看磁盘信息[16210504@izuf60jasqavbxb9efockpz ~]$ df -h文件系统 容量 已用 可用 已用% 挂载点/dev/vda1 40G 37G 633M 99%...原创 2019-08-30 15:56:14 · 331 阅读 · 0 评论 -
Charles(或fiddler)抓Android应用包,CA证书安装及代理后APP无法连接上网的解决办法,亲测!
安装CharlesWindows可参考博客:Windows下(Win10)Charles从下载安装到证书设置和浏览器抓包测试,亲测!Mac版本的下载安装及手机端证书安装可参考这篇博客:Mac下用Charles实现Android http和https抓包问题及解决这篇博客主要介绍Charles安装设置OK后,Android手机也设置安装证书OK后,APP不能上网的问题解决办法。网上一大堆...原创 2019-08-13 13:25:59 · 9150 阅读 · 2 评论 -
专项测试-如何测试APP流畅度,基于adb shell dumpsys gfxinfo命令来获取fps和丢帧率
FPS和丢帧率可以一定程度上作为APP流畅度的一项衡量标准,利用adb shell dumpsys gfxinfo命令可以获取软件渲染加载过程的数据,进行计算从而获取结果前置业务知识:在此之前,需要先了解屏幕展示绘制过程及Android的VSync机制,可参考另一篇博客:专项测试-流畅度测试之前的知识储备-Andorid中VSync机制的介绍获取数据运行命令"adb -...原创 2019-08-05 17:19:54 · 16354 阅读 · 1 评论 -
Java中对json字符串判断是否为数字,并将科学记数法转为原有数字类型
在对json字符串取值时,有些长数字被解析成了科学记数法的形式,导致接口请求失败;所以需要对json值进行类型判断并进行转换:利用java.math.BigDecimal可以创建对象对数字形式进行转换,同时可以利用其创建对象时的异常信息来进行数字判断判断是否为数字: public static boolean isNumeric(String str) { ...原创 2019-06-17 17:04:39 · 5013 阅读 · 0 评论 -
Windows(Win10)、Mac下安装appium,亲测!
1、访问appium的官网http://appium.io/,拉倒底部查看下载appium的安装方式,其实只有两步(如下图红框中):第一步让你用brew install node命令先安装node.js的环境(因为appium是用node.js写的)第二步直接使用npm install -g appium安装即可* 注意:1、官网首页会有个“Download Appium”按钮,这个其实...原创 2019-06-17 10:06:36 · 2791 阅读 · 3 评论 -
Windows下(Win10)Charles从下载安装到证书设置和浏览器抓包测试,亲测!
网上很多教程和博客,但是大多都很零散和不适用,这边自己琢磨成功后总结记录一下,也方便以后有小伙伴踩坑时可以帮上点忙1.在Charles官网https://www.charlesproxy.com/download/下载,我这边下载的是免费体验版的,可以试用30天。2.安装好以后打开,配置Charles证书;选择help——SSL Proxying——install Charles Root...原创 2019-05-29 18:02:20 · 47799 阅读 · 17 评论 -
软件测试登录方向及原理——基于Spring Security框架
登录时我们测试工程师最常见确实最重要,也是最容易被忽视的测试场景,这里借鉴一些经验丰富的测试工程师总结的测试用例并结合Java Spring Security框架来简单说下登录的测试方向和部分原理(持续更新。。。)功能测试(基础)1. 输入已注册的用户名和正确的密码,验证是否登录成功; 2. 输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确;3. 输入未注册的用...原创 2019-05-15 09:49:09 · 442 阅读 · 0 评论 -
如何使用Xshell工具进行文件传输(sftp)
在Xshell中选择新建文件传输按钮或者快捷键Ctrl+Alt+F,进入sftp界面使用put命令,或者在指定文件目录下直接将文件拖入即可原创 2019-04-28 14:19:21 · 18008 阅读 · 0 评论 -
上传图片要使用“multipart/form-data”的content-type类型
**上传图片要使用“multipart/form-data”的content-type类型,如果没有设置enctype,浏览器无法将文件自身传递到服务端.使用enctype为“multipart/form-data”时,前端不能使用<input type=“hadden”name=“method” value=“addProductUI”/>的形式,因为继承的BaseServlet...原创 2019-04-15 14:56:28 · 16010 阅读 · 0 评论 -
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
在执行查询语句的时候出现报错:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ordermysql数据库表名为order,要特别注意sql的书写例如:CREATE TABL...原创 2019-04-15 14:36:21 · 1599 阅读 · 0 评论 -
adb命令安装安卓APK方法和 Failure [INSTALL_FAILED_VERSION_DOWNGRADE]失败原因
使用adb命令安装安卓apk1、USB连接电脑和手机(平板),记得打开开发者选项中的“USB调试”和“连接USB时总是弹出提醒”2、连接电脑后弹出选择框,选择“传输文件”即可3、打开cmd窗口输入“adb shell”命令查看是否连接成功,成功后再“exit”退出4、输入命令“adb is install -r 要传的apk地址”(也可以直接将apk拖至最后),回车后显...原创 2019-04-17 15:34:59 · 28456 阅读 · 1 评论 -
Jenkin的安装与启动(war包形式)
1、在Jenkins官网https://jenkins.io/zh/download/下载war包2、在war包路径下运行"java -jar jenkins.war"命令3、第一次运行过程中会产生一个密码和密码存放的路径,记住它,后面解锁的时候会用的到4、解锁Jenkins,输入上一步中生成的密码,解锁后创建一个用户5、选择需要安装的插件。不知道需要时就安装推荐插件(注意:这里安...原创 2019-06-25 18:06:53 · 2638 阅读 · 0 评论 -
接口自动化-用Jayway JsonPath对json文件进行读写操作,完成自定义传参
在做接口自动化测试时,我们经常会准备好一份json文件模板,写入默认值,作为接口请求body的备用;有时候我们需要对传入的值进行重新定义,那么除了修改模板json文件,还可以在执行用例时动态传入参数对接送文件进行修改。这里我们就用到Jayway JsonPath,官方GitHub地址:https://github.com/json-path/JsonPath官方提供了依赖地址: <...原创 2019-06-18 17:24:44 · 3590 阅读 · 0 评论 -
专项测试-流畅度测试之前的知识储备-Andorid中VSync机制的介绍
VSync 全称是Vertical Synchronization(垂直同步),在Android 4.1中引入Android 系统(同时引入的一个概念是Triple Buffering)。学计算机的经常听到Buffer 的概念(生活中也碰到过很多,比如弹簧),起到的都是一个类似的作用。用来协调两个不同速度的东西工作假设显示内容和绘制使用的是用一块内存,那可能会出现下面的问题。显示有截断的...转载 2019-08-05 11:09:31 · 1623 阅读 · 0 评论 -
ubuntu系统解决中文显示及输入乱码及报错问题-AppCrawler运行环境引发unacceptable code point reader (0x1B) special characters等问题
AppCrawler做自动遍历测试时,我是在Windows上的ubuntu子系统启动的,配置好yml文件,保存-查看-启动运行时会遇到无法保存,就算强制保存后也是无法正常查看,运行时更是会报cat: write error: Input/output errorException in thread “main” java.nio.charset.MalformedInputExceptio...原创 2019-07-26 16:55:48 · 1675 阅读 · 0 评论 -
Linux Vim(vi) 常使用命令快捷键合集
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能,下面看一下具体的命令。1、’/'查找历史记录查看指令模式(command mode)下,按一下’/‘键,然后按上下方向键,就可以查看之前的查找记录。如果想要执行上一次的查找,命令模式...转载 2019-07-26 14:27:24 · 915 阅读 · 0 评论 -
专项测试-如何测试APP所消耗的流量-基于adb shell cat /proc/#pid#/net/dev命令
测试工作中,APP的流量消耗情况有时也需要关注,这关系到用户使用的好感度,毕竟流量是要钱的测试注意事项:测试时候尽量用WiFi去测,WiFi可以模拟弱网环境,做数据对比测试获取的是系统整体流量,所以测试时保证后台除了待测应用外无其他应用,这样测试结果就是待测App整体消耗的流量;否则会干扰测试结果1.利用adb shell ps | grep 包名来获取待测App的pi...原创 2019-07-31 13:51:50 · 2582 阅读 · 0 评论 -
专项测试-如何利用ffmpeg拆帧的方法计算APP的加载渲染时间-从下载安装到运行计算结果
安装环境:Win10运行环境:Ubuntu(我在win10上装了一个Ubuntu的子系统)wiki上对FFmpeg的解释是这样的(我本人也不是很熟悉,仅借用于拆帧辅助测试):FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能[1],包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式...原创 2019-07-31 10:53:54 · 1779 阅读 · 0 评论 -
appium测试,如何定位横屏显示的软件的两种方法(appium-client和uiautomatorView)
做APP自动化的时候,有时候有的APP是横屏显示的,这个时候需要对界面进行定位元素分析有以下两种方法:一. 利用appium-client进行定位分析这种方法的优点: 直接横屏显示,可不做处理直接操作缺点: 1.显示太小,不方便观察操作. 2.实际工作中不会用appium-client去启动appium-server,而用此方法调试时就必须额外启动一个appium-server且经常...原创 2019-07-20 20:21:49 · 1646 阅读 · 2 评论 -
以AppCrawler的配置文件完成定制化的自动遍历测试(基础)-01
AppCrawler是由TesterHome联合创始人黄延胜(思寒)大佬开源的一个项目,项目上对这款工具的解释是:这里主要作为个人学习理解过程的总结笔记与分享,以当前最新的2.4.0版本为例;Java版本需要java8具体的可参考官方GitHub,里面有更详细和权威的解释:https://github.com/seveniruby/AppCrawler生成配置文件模板...原创 2019-07-29 15:45:47 · 5062 阅读 · 21 评论 -
如何利用adb shell对移动端设备进行抓包
要对测试APP抓包获取测试信息,正常是在移动设备上设置好手动代理再用用Charles等工具进行抓包,可是本人的测试设备(Android平板)不知道哪里出了什么问题,设置好手动代理后就无法连接网络了,找了好多办法都不起作用(希望有大神可以帮我解决这个困惑);于是临时就用adb shell命令简单抓包进行测试1、先在cmd中输入“chcp 65001”命令,将编码改为UTF-8,防止中文显...原创 2019-06-26 16:09:14 · 2623 阅读 · 0 评论 -
软件测试自动登录、浏览记录方向原理——基于Cookie和Session的区别和应用场景
Cookie饼干. 其实是一份小数据, 是服务器给客户端,并且存储在客户端上的一份小数据应用场景自动登录、浏览记录、购物车。为什么要有这个Cookiehttp的请求是无状态。 客户端与服务器在通讯的时候,是无状态的,其实就是客户端在第二次来访的时候,服务器根本就不知道这个客户端以前有没有来访问过。 为了更好的用户体验,更好的交互 [自动登录],其实从公司层面讲,就是为了更好的收...原创 2019-04-15 19:10:58 · 721 阅读 · 0 评论