一 计算机历史:
四个阶段
2 操作系统:
1.移动端系统:android和ios 2pc端:Windows linux,macOS,Unix3 Linux
1.Linux分类:Ubuntu ,centos,redhat
2 虚拟机安装
3 虚拟机的创建
4 Linux命令
1.目录切换
切换到根目录 cd /
切换到上一级目录 cd../
切换到用户主目录 cd ~
切换到指定目录 cd/usr
切换为超级用户 su root
2.目录
创建目录:mkdir 目录名称
删除目录 rm -rf 目录名称
移动目录 mv -r 被移动的目录 目标位置(想要移动到哪里)
复制目录 cp -r被复制目录 目标位置目录
查看目录 ls ,ls -a,ls-l,(ll)
修改目录名称 mv 旧名字 新名字
查找目录 find 目录,find /-name 目录
Linux环境配置
1 ssh安装
2 jdk
3 Mysql
4 tomcat安装,解压 开放端口
5 jenkins 持续化继承工具
二 shell脚本
1.变量
定义变量:变量名=值
输出:echo
双引号:遇到$输出变量值,但是被\处理为字符串
单引号:遇到$默认字符串
linux用反单引号`包裹
2.脚本输出当前目录
#!/bin/bash
dir=`pwd`
echo $dir
3 输入,输出,调用
echo
read
./sh
4 参数的传递格式:sh a.sh 参数列表
$1:接收第一个参数~~$n
$n: 文件名称
$@: 所有参数 s
$#: 参数个数 $0
5 运算符
1逻辑
-a
-o
!
2 比较
1.数字
-eq
-ne
-gt
-lt
-le
2 字符串
==
!=
6.if
1.单条件语句
if [条件]
then
操作
else
操作语句
fi
2.多条件语句
if[条件]
then
语句
.
.
.
elif[ 条件 ]
then
语句
.
.
.
else
语句
fi
7.case
case "$变量名"in
"")
语句;;
esac
8 for
for i in 1 2 4
for i in `seq 开始值 间隔 结束值`
9 while
while [ 条件 ]
do
语句
done
10 函数
先定义,在调用
参数
返回值 0没问题 1有问题
三 Jmeter
1.下载,配置,安装
2 线程组
1.进程 ,线程,线程组
1.创建 :测试计划-》添加-》线程-》线程组
2.3个参数 线程数,准备时长,循环次数
3.http请求,指定域名,路径
4 .查看结果
1.查看结果树
2.查看图形结果
3.聚合报告
4.用图标看结果
5 逻辑控制器
1.循环控制器
2.事务控制器
6 断言
预先判断可能会出现的字符串,如果匹配成功断言成功,否则断言失败
1.响应断言
2.json断言
7 处理器
8 定时器
9 组件参数化
1.添加-》配置原件-》用户定义变量
2.定义一个变量并赋值
3.在http请求中调用变量
4 在http请求电泳第二步中定义变量
5 数据库导出TXT文件
10 jmeter函数助手
1.工具-》函数助手-》选择csvread-》文件路径
2.把生成的代码复制到发哦http请求界面参数
11 脚本录制
1.移动端录制
1.保证在同一网络
2.jemter-测试计划-添加非测试元件-http服务代理-设置端口
12 jmeter压测
1.为什么做压测
2.数据库压测
3.服务器压测
一、Linux命令
1、目录操作
(1)cd usr/ 切换到该目录下usr目录
(2) cd .. 切换到上一层目录
(3) cd / 切换到系统根目录
(4) mkdir 目录名称 创建目录
(5)ls 目录名称 查询该目录下所有的目录和文件
(6)ls [-a] 目录名称 查询该目录下所有的目录和文件,包含隐藏文件
(7) ls [-l] 目录名称 查询该目录下所有的目录和文件的详细信息
(8) find / -name 目录名称 查找/root下的目录(文件)
(9)mv 目录名称 新目录名称 修改目录名称
(10) mv 目录名称 目录的新位置 剪切
(11)cp -r 目录名称 目录的目标位置 拷贝
(12)rm -rf 目录 强制删除目录
2、文件操作
(1)touch 文件名称 创建空文件
(2)cat/more/less/tail 文件 查看文件内容
(3)tail -f 文件 动态查看/实时查看文件(日志)
(4) grep 要搜索的字符串 要搜索的文件 关键字搜索
(5)vi/vim 文件 修改文件内容
(6)rm -rf 文件 强制删除文件
3、文件的打包
(1)tar -zcvf 文件名.tar 要打包的文件
4、文件的解压
(1)tar -xvf 文件名.tar
(2)扩充:将文件解压到固定位置
(3)tar -xvf 文件名.tar -C 指定解压的位置
5、 查询当前所在位置: pwd
6、 查看进程:ps -ef | grep 进程名称(tomcat/mysql)
7、杀死进程: kill -9 进程pid
8、 查看端口号:netstat -an | grep 端口号(3306)
9、 查看服务器ip: ifconfig
10 查看网络是否能正常使用
(1)ping 外网地址 查看是否能访问外网
(2)ping 内网ip 查看是否能访问内网
11、权限命令: (1)chmod 777 文件 (2) 赋权
12、 查看cpu:top
13、 查看磁盘信息:df -h
14、查看内存信息:free
15、关机命令:
(1)shutdown -h now 立刻关机,其中now相当于时间为0的状态
(2)shutdown -h 10:23
(3)shutdown -h +10 系统再过十分钟后自动关机
16、重新启动:reboot 重新启动操作系统
一、计算机的历史
1、第一代计算机(1946~1958)
2、第二代计算机(1958~1964)
3、第三代计算机(1964~1971)
4、第四代计算机(1971~ 现在)
二、单元测试、集成测试、功能测试
单元测试:颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证
集成测试:介于单元测试和系统测试之间,一般由开发小组采用白盒加黑盒的方法测试,即验证设计又验证需求。主要用来测试模板与模板之间的接口,同时还要测试一些主要的业务功能。
功能测试:颗粒度最大,一般由独立的测试小组采用黑盒的方式来测试,主要测试系统是否符合需求规格说明书。
一、UnitTest组成
(1)setUp():准备环境,执行每个测试用例的前置条件;
(2)tearDown():环境还原,执行每个测试用例的后置条件;
(3)setUpClass():必须使用@classmethod装饰器,所有case执行的前置条件,只运行一次;
(4)tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次;
1、testFixture
作用:用于一个测试环境的准备和销毁还原
2、testCase
定义:就是一个测试用例
3、testSuite
测试套件,可以将多个测试用例集合在一起,能一起执行选中的测试用例
4、testRunner
执行测试用例
二、断言
(1)assertEqual(a,b):断言a和b是否相等,相等则测试用例通过。(最常用的)
(2)assertNotEqual(a,b):断言a和b是否相等,不相等则测试用例通过。
(3)assertTrue(x):断言x是否True,是True则测试用例通过。
(4)assertFalse(x):断言x是否False,是False则测试用例通过。
(5) assertIs(a,b):断言a是 否是b,是则测试用例通过。
(6)assertNotIs(a,b):断言a是否是b,不是则测试用例通过。
(7)assertIsNone(x):断言x是否None,是None则测试用例通过。
(8) assertIsNotNone(x):断言x是否None,不是None则测试用例通过。
(9)assertIn(a,b):断言a是否在b中,在b中则测试用例通过。
(10) assertNotIn(a,b):断言a是否在b中,不在b中则测试用例通过。
(11)assertIsInstance(a,b):断言a是是b的一个实例,是则测试用例通过。
(12)assertNotIsInstance(a,b):断言a是是b的一个实例,不是则测试用例通过。
三、生成测试报告
1、下载一个文件,HTMLTestRunner.py,复制到项目中
2、使用
四、读取CSV数据
1、创建CSV文件并添加数据
2、创建读取CSV文件
3、在测试类中调用即可
五、xml读取
1、创建xml文件
2、编写读取xml文件的文件
3、调用
自动化持续集成
一、概念
1、 就是一套标准的流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)
2、持续集成:频繁地将代码集成到主干。
3、持续交付:指的是,频繁地将软件的新版本,交付给质量团队评审。
4、持续部署:是持续交付的下一步,评审通过后,自动部署到生成环境。
二、Jenkins
1、概念:Jenkins 是一个开源软件项目,是基于Java开发的一种可拓展持续集成工具,主要用于持续、自动地构建 / 测试 / 集成软件项目以及监控一些定时执行的任务。
2、目的:(1)持续、自动地构建/测试软件项目。
(2)监控软件开放流程,快速问题定位及处理,提示开放效率。
3、特性:易于安装、易于配置、通过 RSS 发布构建结果或当构建完成时通过 e-mail 通知、生成 JUnit / TestNG 测试报告、分布式构建、插件支持,支持扩展插件
4、产品发布流程:产品设计成型 → 开发人员开发代码 → 测试人员测试功能 → 运维人员发布上线
三、安装Jenkins.war包
(1)启动方式:在tomcat的bin目录下启动(最常用)
(2)方式2:打开cmd,进入jenkins目录,然后运行命令:java -jar jenkins.war
四、搭建Jmeter+jenkins+ant持续化
(1) Ant下载及配置安装
下载Apache-ant
解压到你想要安装的目录
配置环境变量
验证是否安装成功
拷贝Jemter包到ant下
新建一个build.xml文件
(2)进行命令行模式后,进入刚才创建的xml文件存放目录,如:D:\build 输入ant即可
五、集成jenkins
打开Jenkins,配置Ant环境
新建一个自由风格任务
构建触发器
构建配置
配置HTML插件
立即构建
针对报告中不显示聚合报告的情况
Jenkins执行自动化测试后发送测试报告邮件
一、自动化测试的好处
1、 缩短测试周期:计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。
2、避免人为出错:测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误
3、测试信息存储:自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便
4、轻易获取覆盖率:自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作。
5、其他:自动化测试可以是实现自动或者定时执行
注意:自动化测试的方向是对的,而且趋势也是如此,但是有些自动化实现不了的还是会手动测试的。
二、自动化分类
1、 整体分类
(1)自动化功能测试
(2)自动化性能测试
2、自动化功能测试的分类:
(1)单元测试:程序员搞定
(2)功能测试
(3)接口测试:大中型项目或长期项目可以采用自动化测试
3、性能测试主要是使用测试工具
(1)Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化。
三、web自动化条件的使用和范围
1、前提条件
(1)手动测试已经完成,后期再不影响进度的前提下逐渐实现自动化
( 2)项目周期长,重复性的工作都交给机器去实现
( 3)需求稳定,项目变动不大
(4)自动化测试脚本复杂度比较低
( 5)可重复利用
2、使用自动化测试的场景
(1)频繁的回归测试
(2)冒烟测试
(3)传统行业需求变化不大,应用频繁
(4)性能测试
四、web自动化常用的工具
1、QTP(收费)
2、Selenium(开源)
3、RFT(收费)
4、(1)元素定位工具:css选择器、xpath
(2)环境工具:(1)firefox35
(2)firebug插件
(3)firepath插件
5、什么是xpath:XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。
6、什么是xml:XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据
7、(1)xml是设计为传输和存储数据的。
(2)html是显示数据以及更好的显示数据
8、获取元素
(1)nodename:选取此节点的所有子节点
(2)/从根节点选取
(3)//从匹配选择当前节点选择文档的节点,不考虑位置
(4)“.”选取当前节点
(5)“..”选取当前节点的父节点
(6)@选取属性