IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录

在我写自动化脚本的时候经验药真实发送验证码才能往下进行UI自动化

思路:验证码会显示在哪些地方,手机短信?数据库存储?日志?

完整代码如下:

package guanyu.tools;

import com.jcraft.jsch.*;//import jdk.nashorn.tools.Shell;import java.awt.*;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;

public class Shell {    //远程主机的ip地址    private String ip;    //远程主机登录用户名    private String username;    //远程主机的登录密码    private String password;    //设置ssh连接的远程端口    public static final int DEFAULT_SSH_PORT = 22;    //保存输出内容的容器    private ArrayList<String> stdout;

    /**     * 初始化登录信息     * @param ip ip地址     * @param username  用户名     * @param password  ssh密码     */    public Shell(final String ip, final String username, final String password) {        this.ip = ip;        this.username = username;        this.password = password;        stdout = new ArrayList<String>();    }    /**     * 执行shell命令     * @param command     * @return     */    public int execute(final String command) {        int returnCode = 0;        JSch jsch = new JSch();        //调用 myuserinfo        MyUserInfo userInfo = new MyUserInfo();        try {            //创建session并且打开连接,因为创建session之后要主动打开连接            Session session = jsch.getSession(username, ip, DEFAULT_SSH_PORT);            session.setPassword(password);            session.setUserInfo(userInfo);            session.connect();

            //打开通道,设置通道类型,和执行的命令            Channel channel = session.openChannel("exec");            ChannelExec channelExec = (ChannelExec)channel;            channelExec.setCommand(command);

            channelExec.setInputStream(null);            BufferedReader input = new BufferedReader(new InputStreamReader                    (channelExec.getInputStream()));

            channelExec.connect();            System.out.println("shell执行命令 :" + command);

            //接收远程服务器执行命令的结果            String line;            while ((line = input.readLine()) != null) {                stdout.add(line);            }            input.close();

            // 得到returnCode            if (channelExec.isClosed()) {                returnCode = channelExec.getExitStatus();            }            // 关闭通道            channelExec.disconnect();            //关闭session            session.disconnect();

        } catch (JSchException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (Exception e) {            e.printStackTrace();        }        return returnCode;    }    /**     * get stdout     * @return     */    public  ArrayList<String> getStandardOutput() {        return stdout;    }//编写一个main方法来进行测试一下    public static void main(final String [] args) {        Shell s = new Shell("ip地址", "用户名", "密码");        System.out.println("SSH隧道连接成功");//        System.out.print("验证码为:");        //进入/目录;打印日志文件 | 手机号为:13500774693 | awk过滤空格 | 取最后一行,这里根据你的实际情况来进行分析,这里的awk命令在我的博客里面会有更新,也可以自行百度        s.execute("cd /&&cat data/logs/guanyu.auth_web/external.log |grep 13500774693 | awk -F ‘[ ]+‘ ‘{print $11}‘| awk ‘END {print}‘");        ArrayList<String> stdout = s.getStandardOutput();        for (String str : stdout) {            System.out.println("for循环输出:"+str);            System.out.println("直接输出:"+stdout.get(0));            String yanzhengma = stdout.get(0);            String houjiwei = yanzhengma.substring(yanzhengma.length()-6);//最后验证码取出来了,之后可以进行自动化了            System.out.println("输出验证码后几位:"+houjiwei);        }

    }}

原文地址:https://www.cnblogs.com/zjwailxy/p/11975171.html

时间: 2024-07-31 20:15:23

IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录的相关文章

Linux使用ssh动态验证码登录机器

ssh动态验证码登录机器 Google Authenticator是一个动态验证码程序,兼容各种智能手机平板设备,可以用来做各种帐号的二次验证,增加帐号的安全性.SSH是Linux系统的最重要防线之一,为了防止密码泄露或者被爆破,可以使用Google Authenticator来做二次验证,使用方法也很简单 谷歌身份验证器生成的是动态验证码,默认30秒更新.修改配置,SSH登录必须在输入密码之前输入动态验证码.即使账号和密码泄露,验证码输入错误,仍然无法登录.苹果或者安卓手机端可以安装身份验证器

ssh 实体关系分析确立(ER图-实体关系图)

比较简单的方式就是根据模仿同类产品,根据同类产品的进行模仿,表单就是一个起码要加的字段,然后根据项目需要额外增加字段. 注意:实体类之间的引用关系还需要考虑性能的影响.如:单向或是双向. 表设计: 设计好后: 写实体类 建立实体类到数据库的关联关系 概述 5.实体关系分析 1.类结构:带箭头是单线关联,不带箭头是双向关联 ---------------------------------------- class User (1)<------(*) class Survey  (1)-----

基于Java的高性能基金持仓分析服务器开发

基于Java的高性能基金持仓分析服务器开发(Java多线程\SOCKET编程\JAVA高并发) http://www.ibeifeng.com/goods-260.html 咨询QQ2110053820 课程讲师:hejing 课程分类:Java基础 适合人群:中级 课时数量:30课时 更新程度:完毕 用到技术:Java多线程.SOCKET编程.ant编译.poi组件 涉及项目:基金持仓分析服务器 本课程是一套采用JAVA开发大并发.高性能服务器系统的视频教程,此教程从头到 尾采用高性能基金持仓

简单安装ELK分析日志及使用心得

ELK是由Elasticsearch.Logstash.Kibana三个组件组成的.Elasticsearch:是ELK的核心插件,是一个基于Lucene的搜索服务器,它提供一个分布式多用户能力的全文搜索引擎,能够达到实时搜索,稳定,可靠,快速,安装方便.Elasticsearch服务会开启两个端口,9200和9300,其中9200是对外服务的,9300是对集群内交互使用的.Logstash:日志收集工具,可以从本地磁盘,网络服务(自己监听端口,接受用户日志),消息队列中收集各种各样的日志.然后

深入理解Java虚拟机-常用vm参数分析

Java虚拟机深入理解系列全部文章更新中... 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲 深入理解Java虚拟机-如何利用JDK自带的命令行工具监控上百万的高并发的虚拟机性能 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析 深入理解Java虚拟机-你了解GC算法原理吗 话不多说,今天就分析一下一些常用的Java虚拟机的参数设置,以及如何更好

基于Java Web SSH框架的网上书店

获取项目源文件,技术交流与指导联系Q:1225467431 摘   要 随着互联网技术的发展,网上购物越来越流行,而网上书店更是逐渐受到越来越多的人关注,不用涉及交通.不用到书店翻阅.即可看到全国各地的书籍价格.更加全面地搜索自己喜欢的书籍.需要的书籍.通过网络销售系统的平台,商家将拥有更大的市场,能更加及时快速地得到用户对于商品的反响,可以随时调整销售策略,提高商家的市场竞争力.对于消费者也提供了方便,消费者可以不受时间和地域的限制进行购物,并且可以获取更多信息.. 本文阐述了如何构建基于B/

分析日志文件

在tomcat中安装logback插件,此插件用于生成日志.该日志中包括很多信息,我们的目的是将需要的数据进行整理,将其插入到MySQL数据库中,并将其做成定时任务执行. 一下是原日志文件内容: 我们需要client,uniquecode,device,versioncode,interface,createtime这些字段 思路如下: 1.我们只需要对包含接口和请求开始字段的行进行数据整理. grep "personal/checkupdate.json请求开始"   /home/l

java.io.BufferedOutputStream 源码分析

BufferedOutputStream  是一个带缓冲区到输出流,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统. 俩个成员变量,一个是存储数据的内部缓冲区,一个是缓冲区中的有效字节数. /** * The internal buffer where data is stored. */ protected byte buf[]; /** * The number of valid bytes in the buffer. This value

Java split方法源码分析

Java split方法源码分析 1 public String[] split(CharSequence input [, int limit]) { 2 int index = 0; // 指针 3 boolean matchLimited = limit > 0; // 是否限制匹配个数 4 ArrayList<String> matchList = new ArrayList<String>(); // 匹配结果队列 5 Matcher m = matcher(inp