测试主要内容

1.计算机历史:四个阶段

2. 操作系统:

            1.移动端系统:android和ios

             2.pc端: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 目录

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

函数 :先定义,在调用

参数 :返回值 0没问题  1有问题

jmeter

一.下载,配置,安装

二.线程组

1.进程 ,线程,线程组

1.创建 :测试计划-》添加-》线程-》线程组

2.3个参数 线程数,准备时长,循环次数

三.http请求
指定域名,路径

四 .查看结果(监听器)

1.察看结果树

2.汇合报告

3.聚合报告

4.后端监听器

5.汇总图

6.断言结果

7.比较断言可视化器

8.生成概要结果

9.图形结果

五.事务控制器

事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。

在线程组下创建事务控制器

六. 逻辑控制器

七.循环控制器

八.断言-检查点

预先判断可能会出现的字符串,如果匹配成功断言成功,否则断言失败

    1.响应断言

    2.json断言

九.前置处理器和后置处理器

主要是生成请求之前和之后完成工作。

十.定时器

数组之间的间隔

Jmeter组件参数化

1.添加——>配置原件——>用户定义变量

2.定义一个变量并赋值

3.在http请求中调用变量

4 在http请求电泳第二步中定义变量

5 数据库导出TXT文件

函数助手

文件中不要出现中文

工具——>函数助手对话框

Jmeter正则表达式

线程组——>添加——>后置处理器——>正则表达式提取器

七单元——Jmeter脚本录制

第一行要写    #!/bin/bash

    vim 编辑

    执行:        ./文件名        sh 文件名

    chmod  777 文件名        修改文件权限

定义变量规则:

变量名=值   

shell定义变量的规则:

1: 等号两边不能有空格

2:定义特殊的变量需要用单引号或者双引号结合

3:定义linux命令需要用反单引号

区分:

双引号中有$变量名,输出的是变量名对应的变量值

单引号中有$变量名,输出的是$变量名

命名格式:脚本名称用 . sh

脚本输入输出格式:

输入语句用:read-p"描述"

Shell输出值:echo$变量名

参数传递:

$1:接收第一个参数~~$n

$n: 文件名称

$@: 所有参数 s

$#: 参数个数  $0

比较运算符

1比较运算符(数字)

-eq 比较是否相等equal

-ne 比较不相等          notequal

-gt 比较大于            greater than

-ge  比较大于等于       greaterequal

-lt  比较小于           less than

-le  比较小于等于       lessequal

2计较运算符(字符串)

==  比较是否相等

!=  比较不相等

加一操作 : ((i++))((i+=1))

加n操作 : s=$(($s+$i))s=$[$s+$i]((s=$s+$i))

3逻辑运算符

-a  逻辑与    -o逻辑或      !逻辑非

if语句

格式: if [ 条件 ]

             then

             语句

             else

             语句

             fi

多条件:if [ 条件 ]

                then

                语句

                elif [ 条件 ]

                then

                语句

                ......

                else

                语句

                fi

case规则:

格式:case $变量名 in

            "值")

            语句;;

            "值")

            语句;;

            .....

            esac

注意:1、case这第一行以in结尾

2、值可以是字符串也可以是数字, 如果数字范围[0-9] 

            3、结束语句;;

            4、esac结束标志

for循环

格式:for 变量 in  列表

            do

            语句

            done

数量过多时不能全列出来时:

    for i in `seq 1 2 100`

    do

    echo $i

    done

注意:in之后的 ` 内 seq mix step max

mix 开始数据 step:间隔 max 结束数据,如果step为1,可以省略,需要用反单引号,seq语句标志

While循环

格式:while [条 件 ]

                        do

                        语句

                        done

注意:1、 while后面有空格

2、条件两边有空格

3、while条件里面存在变量,需要$,而且变量两边需要双引号

4、done是结束标识

Shell脚本的函数

    格式:函数名(){代码 }

                调用格式

                函数名

函数中的参数使用$n来接收数据

函数中的返回值:Shell中函数默认存在返回值查看返回值是$?

如果没有代码错误默认返回值为0            有代码错误返回1

八单元——Jmeter

1、下载、配置、安装

2、线程组

    1、进程、线程、线程组

    2、创建:测试计划→添加→线程→线程组

    3、三个参数

3、Http请求:

        指定域名、路径、端口、方法、指定参数、协议

4、查看结果 \ 监听器:

        1、查看结果树 **

        2、图形 结果  **

        3、聚合报告

        4、用图表看结果  **

5、逻辑控制器

        1、循环控制器

        2、事务控制器(有开始、有结束)

6、断言

        预先判断可能会出现的字符串。如果匹配成功,断言成功。否则断言失败

7、处理器

前置处理器:前置处理器常常用来修改请求前的设置

后置处理器:后置处理器则常常用来处理响应后的数据

8、定时器

            控制两个请求之间的间隔    

9、参数化

        1、自定义变量

            1、添加→配置元件→用户定义变量

            2、定义一个变量并赋值

            3、在http请求中调用变量$(变量名)

        2、引用文件中的变量

            1、添加→配置元件→CSV DAta Set Config

            2、设置线程组的线程数

            3、文件路径、编码、变量、用到文件结束符(true、false)

            4、在http请求中调用第二步中定义变量

            5、数据库导出TXT文件

10、Jmeter 函数助手    

        1、工具——》函数助手—>选择CSVRead——> 文件路径(必须放在bin里面)列名(0,1,2)——>生成

        2、把生成的码复制到HTTP请求界面参数值

11、脚本录制

        1、移动端录制

                1、保证同一网络

                2、jmeter——>测试计划——>添加非测试元件——>Http服务代理——>

        2、PC录制:badboy

九单元——Python的基础语句和语法

一、下载、安装、第一个程序

二、变量

1、数据类型

                Numbers(数字型):int(整型)、long(长整型)、float(浮点型)、complex(复数型)

                bool(布尔型):true、false

                String(字符串)

                List(列表型)

                Tuple(元祖型)

                Dictionary(字典)

2、标识符组成、命名规则

                1、什么是标识符?

                        开发人员在程序中自定义的一些符号和名称

                        标识符是自己定义的,如变量名 、函数名等

                2、标识符命名规则

                        1)只能由字母、下划线、数字组成

                        2)不能以数字开头

                        3)不能使用关键字

                        4)严格区分大小写

3、注释

                分为单行注释和多行注释

                    单行注释:光标移动至注释行Ctrl+/

                    多行注释:选中需要注释内容输入‘’‘

        4、关键字

三、输入和输出

                输入语句:input()用来获取控制台的输入

                输出内容:print(内容)用于打印输出,最常见的一个函数

                        objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

                        sep -- 用来间隔多个对象,默认值是一个空格。

                        end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

                        file -- 要写入的文件对象。

四、运算符

1、赋值运算符:

简单的赋值运算符:=

加法赋值运算符:+=

减法赋值运算符:- =

乘法赋值运算符:*=

除法赋值运算符:/=

取模赋值运算符:%=

幂赋值运算符:**=

取整赋值运算符://=

海象运算符::=在示例中,赋值表达式可以避免调用len()两次

        2、比较运算符

等于:==

不等于:!=

大于:>

小于:<

大于等于:>=

小于等于:<=

3、逻辑运算符

逻辑与:and

逻辑或:or

逻辑非:not

        4、算数运算符

:+

:-

 :*

:/

取模:%

幂/次方:**

取整://

五、判断语句

1、if

                    if 要判断的条件:

                            条件成立时,要做的事情

2、if    else

                    if 要判断的条件:

                            条件成立时,要做的事情

                    else:

                            条件不成立时,要做的事情

        3、if    elif    else

                    if 要判断的条件:

                            条件成立时,要做的事情

                    elif 要判断的条件:

                            条件成立时,要做的事情

                    else:

                            条件不成立时,要做的事情

六、循环

1、while

                    while 条件:

                            条件成立时,要做的事情

                            条件成立时,要做的事情

.....

        2、for

                    for 临时变量 in 列表或者字符串等可迭代对象:

                            循环满足条件时执行的代码

十单元——Python的列表

一、格式

变量=[,,,]

、列表的新增

append, extend, insert

 append:直接在列表后方进行拼接添加的是一个元素(列表会占用一个索引位)

extend:直接在后方拼接追加的多个元素(列表会占用多个索引位)

 insert:对指定索引位进行新增数据(如果新增的索引不存在,则会默认添加到最后索引位)

三、列表的修改

  1、通过索引来修改

                        列表名 [要修改的索引位]="要修改的内容"

                        !!!索引不存在的时候,会报错

四、列表的删除

1、del 删除指定索引位的内容

                        del    列表名    [需要删除的索引]

2、pop 默认删除最后一个元素

3、remove 根据元素的值来进行删除

五、列表的查询

index, count

1、ndex 查询列表中的元素,如果存在就返回给元素的索引,不存在就报错

                    格式:    列表名称 . index ( 查询的内容 )

2、count 查询列表中的元素的个数

                    格式;    列表名 . count ( 所要查询个数的元素 )

六、列表的排序

1、sort 方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

2、reverse 方法是将 list 反转

七、列表的循环取值

方法一:for    循环

            方法二:while 循环

八、列表嵌套

变量=[,,,]

、列表的新增

append, extend, insert

 append:直接在列表后方进行拼接添加的是一个元素(列表会占用一个索引位)

extend:直接在后方拼接追加的多个元素(列表会占用多个索引位)

 insert:对指定索引位进行新增数据(如果新增的索引不存在,则会默认添加到最后索引位)

三、列表的修改

  1、通过索引来修改

                        列表名 [要修改的索引位]="要修改的内容"

                        !!!索引不存在的时候,会报错

四、列表的删除

1、del 删除指定索引位的内容

                        del    列表名    [需要删除的索引]

2、pop 默认删除最后一个元素

3、remove 根据元素的值来进行删除

五、列表的查询

index, count

1、ndex 查询列表中的元素,如果存在就返回给元素的索引,不存在就报错

                    格式:    列表名称 . index ( 查询的内容 )

2、count 查询列表中的元素的个数

                    格式;    列表名 . count ( 所要查询个数的元素 )

六、列表的排序

1、sort 方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。

2、reverse 方法是将 list 反转

七、列表的循环取值

方法一:for    循环

            方法二:while 循环

八、列表嵌套

格式:变量名 = [ , [ , ] ]

十一单元——元组和字典

一、元组

1、元组的格式

变量名=( , , , , ) 

2、访问元组

                通过索引来取数据:

                            索引存在时会输出相对应索引的元素

                            索引不存在时会报错

3、查询个数

count查询元素存在的个数

4、查询索引

index查询元素的索引,有对应元素返回索引,如果无则报错

5、修改数据

                元组不能修改数据(需与列表相互转换之后才可改变元素)

6、类型转换

元组转列表:list(元组名)

列表转元组:tuple(列表名)

7、元组循环取值

                方法一:for循环取值

for  i  in  元组名  :

print( i )

                方法二:while 循环取值

                            先定义变量    i = 0

while  i  <  len(元组名):

                                        print( 元组名 [ i ] )

                                        i  +  =  1

二、字典

1、字典格式

变量名={ key1 : value , key2 : value ,,,}

                字典的每个元素由2部分组成,键(key):值(value)

2、根据键访问值

                有对应Key时,会输出相应的Value值

info={"name":"anfly","age":18,"sex":"男"}

print ( info [ " name " ] )

# anfl

                若无对应的Key时,则会报错

                如果不确定字典中是否存在某个键而又想获取其值时,如何操作?

列表名 . get ( 不确定的key值 )

列表名 . get ( 不确定的key值  ,  不存在时提示内容)

3、修改元素

                字典里每个元素都是可修改的,只要通过Key找到Value,即可修改,否则是新增

                有对应的key则是修改数据,没有对应的key是新增数据

4、添加元素

格式:字典名 [ 新增Key值 ] = 新增 Value值

5、删除元素

1)del

del  字典名会删除整个字典

del  字典名  [ key值 ]会删除指定元素

2)clear    清空

字典名 . clear ( ) 可以清除字典全部元素

6、查询长度

 len ( 字典名 ) : 查询键值对的个数

7、字典中循环

方法一:for  i  字典名 . keys() :

print ( i , 字典名 [ i ] )

方法二:for  k , v  字典名 . items():

print ( k , v )

方法三:for  i  in  可迭代  :

print  ( i )

for  i  ,  ch  in  enumerate( Key值 ):

print ( i , ch )

十二单元——集合和函数

一.集合

定义特征:集合是无序的,集合中元素是唯一的,集合一般是用于元组或者列表中元素去重

格式:变量名=set()

            变量名.add(元素)   #不能初始化

添加元素:add  update

删除元素:remove    pop     discard

二.集合的交集和并集

交集:使用&连接多个集合,得到相同的元素

并集:使用|连接对个集合,得到全部集合中全部的元素

三.公共方法

运算符:* (复制)      +(合并)      in(元素是否存在)      not in(元素是否不存在)

python中的内置函数:


zhangyiwen

长度:len()

最大值:max()

删除:del()

四.函数

定义:在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

格式:def   函数名():

                    执行语句

            函数名()

位置参数格式     def函数名(参数1,参数2):

                                    代码块

                               函数名(值1,值2)

定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

关键字参数格式:def函数名(参数1,参数2):

                                    代码块

                            函数名(参数1=值1,参数2=值2)

缺省参数定义:在形参中默认有值的参数,称之为缺省参数

不定长参数:有时可能需要一个函数处理比当初声明时更多的参数,这些参数叫做不定长参数,声明时不会命名

参数位置顺序:deffun(位置参数,*args,缺省参数,**kwargs):

                                    代码块

                            fun(参数值)

函数类型

    1. 无参数,无返回值:此类函数,不能接收参数,也没有返回值,一般情况下,打印提示灯类似的功能,使用这类的函数

    2. 无参数,有返回值:此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数

    3. 有参数,无返回值:此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需结果时,用此类函数

    4. 有参数,有返回值:此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数

函数的嵌套:一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用

五.变量

定义:

局部变量,就是在函数内部定义的变量

全局变量,在函数外边定义的变量叫做全局变量

十三单元——python的文件操作异常处理

一.文件的介绍

1.文件

2.文件的作业

二.文件的打开和关闭

1.打开文件

打开一个已经存在的文件,或者新建一个文件


zhangyiwen

2.写数据  write

3.读数据    read   readline   readlines

4.可写  a

5.读数据  rd

6.写数据  wb

7.关闭文件   close()

三.文件和文件夹的操作

1.文件重命名

os模块中的rename()可以完成对文件的重命名操作

2.删除文件

os模块中remove()可以完成对文件的重命名操作

3.创建文件夹

os模块中的mkdir()可以完成对文件的重命名操作

4.获取当前目录

os模块中的getcwd()可以获取当前目录

四.异常

1.定义:异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

2.作用

捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。

3.语法

4.使用except而不带任何异常类型

5.使用except而带多种类型

6.try-finally语句

7.异常传递

8.触发异常

9.用户自定义异常

五.模块

1.定义:Python 模块(Module),是一个Python文件,以.py 结尾,包含了Python 对象定义和Python语句

2.引入:import

3.from...import语句

4.from...import*语句

六.python中的包

定义:包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包。

第十五单元 Python单元测试之unittest

一、单元测试、集成测试、功能测试

单元测试:颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证

集成测试:介于单元测试和系统测试之间,一般由开发小组采用白盒加黑盒的方法测试,即验证设计又验证需求。主要用来测试模板与模板之间的接口,同时还要测试一些主要的业务功能。

功能测试:颗粒度最大,一般由独立的测试小组采用黑盒的方式来测试,主要测试系统是否符合需求规格说明书。

一、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、调用

第十六单元pytest

一、命名规则

        1、先安装pip install pytest 和 pip install pytest-html (生成html报告)

        2、类名和方法名必须是以test开头

二、自动生成html测试报告

方式一

            1、pytest.main("模块.py")【运行指定模块下,运行所有test开头的类和测试用例】

            2、格式:pytest.main(["--html=./report.html","模块.py"])

        方式二

            1、运行指定模块指定类指定用例,冒号分割,并生成测试报告

            2、格式:pytest.main([‘--html=./report.html’,‘模块.py::类::test_a_001'])

      方式三

            1、Pytest调用语句

            -x:出现一条测试用例失败就退出测试

            -v:丰富信息模式, 输出更详细的用例执行信息

            -s:显示print内容

            -q:简化结果信息,不会显示每个用例的文件名

三、Pytest运行方式

            1、“.”点号,表示通过

            2、F表示失败,Failue

            3、E表示用例中存在异常,Error

四、文件读取

            (1)读取csv文件:先创建文件,然后读取

            (2)读取xml文件

1、创建xml文件

                     2、编写读取xml文件的文件

                     3、调用

五、Allure

            概念:生成测试报告的框架            

            1、先配置allure的环境变量

            2、验证allure是否配置成功

            3、其次要安装allure:pip install allure-pytest

            4、allure常用的几个特性

                   (1) @allure.feature# 用于描述被测试产品需求

                    (2)@allure.story# 用于描述feature的用户场景,即测试需求

                    (3)with allure.step():# 用于描述测试步骤,将会输出到报告中

                    (4)allure.attach# 用于向测试报告中输入一些附加的信息,通常是一些测试数据,截图等

第十七单元Requests

一、介绍

           1、Requests是一个很实用的Python HTTP客户端库,是Python语言的第三方的库,专门用于发送HTTP请求。

            2、下载:pip install requests

            3、get请求

            (1)get无参、get传参

            (2)post请求

二、Requests响应

            r.status_code        响应状态码

            r.heards             响应头

            r.cookies            响应cookies

            r.text               响应文本

            r. encoding          当前编码

            r. content          以字节形式(二进制)返回

三、Requests扩充

            1.添加等待时间:requests.get(url,timeout=1),如果超过等待时间则报错

            2.添加请求头信息:requests.get(url,headers=headers),设置请求头

            3.添加文件:requests.post(url,files=files),添加文件

四、Requests+Pytest+Allure

            1、流程:(1)读取文件中的数据

                            (2)requests拿到数据请求接口返回状态码

                            (3)通过断言验证返回状态码和200对比

                            (4)生成allure的测试报告

五、读取csv文件

        1、通过excel另存为csv即可

        2、读取数据:readDemo

        3、request请求接口返回状态码

        4、pytest断言设置并结合allure生成测试报告

        5、测试报告展示

六、 读取excle文件流程

          1、存储数据(xlsx)

            2、读取数据:readDemo    

            3、request请求接口返回状态码

            4、pytest断言设置并结合allure生成测试报告

             5、测试报告展示

第十八单元自动化持续集成

一、概念

       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)@选取属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容