冒烟测试方案

来源:互联网 发布:苹果网络锁是什么意思 编辑:程序博客网 时间:2024/06/15 13:44

冒烟测试工作内容包括:

1.通过ELK实现应用中间件日志的采集与管理;

2.利用python的pyes库实现从eleticsearch中抓取xml和json格式的接口报文;

3.利用python的http和socket接口库实现接口测试案例;

4.对报文进行格式化处理,提取日期、流水号或时间戳等关键字,并对各式化后的报文做MD5校验

5.对于存在问题的案例进行自动退出,保证案例集的可用性

6.对于大量案例的执行结果进行成功率分析和错误归因分析,最终发现存在的接口问题

一.开源实时日志分析ELK平台部署

ELK简单架构

从左边看起,每一台webserver上都会部署一个logstash-agent,它的作用是用类似tailf的方式监听日志文件,然后把新添加的日志发送到redis队列里面,logstash-indexer负责从redis相应的队列里面取出日志,对日志进进行加工后输出到elasticsearch中,elasticsearch会根据要求对日志进行索引归集,最后用户可以通过kibana来查看和分析日志。

开始搭建日志系统


2.检验安装是否成功 bin/logstash -e "input{stdin{}}output{stdout{}}",然后在终端输入hello,看看有没有内容返回 
安装logstash 
3.编写配置文件logstash_agent.conf 
在logstash安装目录下新建conf文件夹,在里面新建配置文件logstash_agent.conf

input {        file {                type => "customer_service"                #需要收集的日志文件                path => ["/home/java/logs/cust/customer-service-*.log"]                 tags => ["customer-service", "log4j2"]                #                              codec => multiline { #                        pattern => "^%{TIMESTAMP_ISO8601}"                        negate => true                        what => "previous"                }        }}output {        redis {                host => "192.168.235.195"                data_type => "list"                key => "logstash:redis:customer"        }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4.后台启动 
nohup ./bin/logstash -f conf/logstash_agent.conf &

在日志server上安装elasticsearch

1.解压tar -zxvf elasticsearch-2.3.1.tar.gz 
2.修改安装目录下的配置文件config/elasticsearch.yml 
把network.host字段给反注释掉,把地址改为0.0.0.0(官方并没明确说要去改这配置,默认配置应该就可以了,不过实测的时候发现如果不做这修改,elasticsearch访问不了) 
这里写图片描述 
3.后台启动elasticsearch 
nohup ./bin/elasticsearch &

在日志server上安装logstash-indexer

在webserver上安装logstash-agent一节基本相同,只是配置文件不一样,这里使用logstash-indexer.conf

input {        redis {                host => "localhost" #redis地址                data_type => "list"                key => "logstash:redis:customer"                type => "redis-input"        }}filter {    grok {        match => {            "message" => "%{TIMESTAMP_ISO8601:date} \[(?<thread_name>.+?)\] (?<log_level>\w+)\s*(?<content>.*)"        }    }    date {        match => ["timestamp", "dd/MMM/YYYY:HH:mm:ss Z"]    }}output {        if[type] == "customer_service" {            elasticsearch {                    #embedded => false                    #protocol => "http"                    hosts => "localhost:9200"                    index => "customer-%{+YYYY.MM.dd}"            }        }else if[type] == "其他类型" {            elasticsearch {                    #embedded => false                    #protocol => "http"                    hosts => "localhost:9200"                    index => "其他类型索引名字-%{+YYYY.MM.dd}"            }        }else {            //做其他处理        }        stdout{ #输出到标准输出,可以去掉        }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

启动logstash-indexer 
nohup ./bin/logstash -f conf/logstash-indexer.conf &

在日志server上安装kibana

1.解压tar -zxvf kibana-4.5.0-linux-x64.gz 
2.后台启动kibana nohup ./bin/kibana & 
这里没有特别去配置kibana要访问的elasticsearch地址,默认它会找本地的,如果需要,可以到conf/kibana.yml修改

配置log4j2的日志格式

<PatternLayout pattern="%d{ISO8601} %t %level %msg%n"/>

访问kibana主页

1.打开kibana主页http://your-kibana-ip:5601/ 
2.输入索引customer-*,并点击create 
这里写图片描述 
3.在Discover页面观察日志 
这里写图片描述

ToDo:

需要了解elasticsearch日志存放在哪里,定期清理日志

清理Elasticsearch索引

索引放久了需要清理,清理所以可以使用Elasticsearch的API。 
例如我需要删除某个索引2016年5月份的所有索引,可以使用下面的命令:

curl -XDELETE 'http://localhost:9200/customer-2016.05.*'

更多API可以查阅Elastic官网 
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html

参考资料

http://www.cnblogs.com/yjf512/p/4199105.html 
http://www.csdn123.com/html/topnews201408/34/15334.htm 
http://www.cnblogs.com/xing901022/p/4805586.html 
https://github.com/chenryn/logstash-best-practice-cn/blob/master/codec/multiline.md 
http://www.open-open.com/lib/view/open1451801542042.html



0 0
原创粉丝点击