总结-3

1、post请求与get请求的区别
    a.get请求一般是获取数据
      post请求一般提交数据
    
    b.GET参数通过URL传递,
      POST放在Request body中
      
    c.get请求可以被缓存,
      post请求不会被缓存
    
    d.get请求刷新服务器或者回退没有影响,
      post请求回退时会重新提交数据请求
      
    e.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
     
    f.get因为参数会放在url中,所以隐私性,安全性较差,请求的数据长度是有限制的,
      不同的浏览器和服务器不同,一般限制在 2~8K 之间,更加常见的是 1k 以内;
      post请求是没有的长度限制,请求数据是放在body中;
      
    g.对参数的数据类型,GET只接受ASCII字符,而POST没有限制
     
    h.深入理解
      1.GET和POST都是http请求方式,底层都是 TCP/IP协议,
         通常GET产生一个 TCP数据包;
         POST 产生两个 TCP 数据包(但firefox是发送一个数据包),

      2.对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应 200(返回数据)表示成功;
         而对于POST,浏览器先发送 header,服务器响应100, 浏览器再继续发送 data,服务器响应 200(返回数据)。


2、如何设置文件和目录的权限
    在 Linux 中,可以使用 chmod 命令来设置文件和目录的权限
    权限由三个组成部分组成:所有者(owner)、群组(group)和其他用户(others)
    
     例如,运行 chmod 755 filename 可以将文件的权限设置为 rwxr-xr-x,其中 r 表示可读,w 表示可写,x 表示可执行
     
     控制用户对文件的权限的命令:chomd –rwx file (r读w写x执行)


3、linux查询端口命令
    a.netstat -atulnp 会显示所有端口和所有对应的程序
      要列出正在侦听的所有 TCP 或 UDP 端口
      etstat -tunlp
      
    b.lsof -i:端口号 用于查看某一端口的占用情况
      比如查看9092端口使用情况
      lsof -i:9095
             
             
4、redis的查看数据类型
    可以通过redis的命令来查询数据类型,查询指定key的数据类型。
     具体命令如下:
         type key
         
    其中,key是要查询的键名。执行该命令后,redis会返回该键对应的数据类型,例如string、hash、list、set、zset等
     需要注意的是,如果查询的键不存在,redis会返回none
     
       
    1.补充:redis通用命令:
        1.查看数据库所有的key:keys *   

         ?---匹配1个字符  *---匹配0个或多个字符   []---匹配[]里面的1个字符,

         keys k*:查看数据库中以k开头的key

         key h?o:以h开头,o结尾的中间只有一位的

        2. 判断某一个key是否在数据库存在:exits key 如果存在,返回1,否则,返回0

        3.key k1 k2 k3 返回值是key的数量

        4.移动指定的key到指定的数据库实例:move key index(编号)---move k 1

        5.查看指定的key的剩余生存时间:ttl

         如果key没有设置生存时间,返回-1

         如果key不存在,返回-2

        6.设置key的最大生存时间:expire key time(以秒结束)  expire k 20

        7.查看指定key的数据类型:type key

        8.重命名key:rename key new key   rename k k1

        9.删除指定key:del key key key  返回值是实际删除的key的数量,一次删除多个key


5、mysql中查询左连接与右连接区别
    a.左连接:left join 通过左连接获取数据,以左表为基础,显示左表所有记录,
      而右表中数据只显示与关联条件相匹配的记录,不匹配的属性值以NULL填充
             
    b.右连接:right join 通过右连接获取数据,以右表为基础,显示右表所有记录,
      而左表中数据只显示与关联条件相匹配的记录,不匹配的属性值以NULL填充
             
    c.内连接:相当于左连接与右连接的合并,去掉所有含NULL的数据行,
      剩下的就是查询出来的数据了。其实就是两边的表都必须满足条件。(返回相关的查询结果,返回的是两个表的交集部分)
    

6、怎么查看app查看的日志
    具体操作步骤:
    1.手机连接电脑
      将手机连接电脑并且手机处于开发者模式
      打开cmd窗口查看手机是否与电脑连接,指令为adb devices连接成功
    2.查看app日志
      输入命令:adb logcat * | find “trace”,实时查看App操作日志 (注:其中trace是对应应用关键词)
      若执行上述命令,出现如下中文乱码,则执行 chcp 65001 即可修改,设置成utf-8编码
      测试操作测试app,cmd窗口既可以看见具有筛选关键字的日志
      如需停止查看日志ctrl+c即可
        
        
7、补充:
    安卓开发过程中经常遇到真机崩溃的情况,这时如何拿到崩溃日志是我们十分关心的问题。
    手机崩溃后,不要再进行别的操作,保留现场。连接手机和电脑,使用adb命令抓取崩溃日志       
     adb logcat -c 清除之前的日志信息,一般在看日志前都会执行这个命令,目的是好看日志,不然前面的日志应该会超级多,不好看问题
     adb logcat *:W
      注意:这句命令的意思是显示所有优先级大于等于警告(Warning)的日志,查找崩溃问题一般用

    adb logcat *:E
      注意:这句命令的意思是显示所有优先级大于等于错误(Error)的日志     
      日志的优先级一般有如下几档,由低到高
        1、VERBOSE,一般信息,使用Log.v输出颜色为黑色且日志级别大于等于VERBOSE的信息
        2、DEBUG,调试信息,使用Log.d输出颜色为蓝色且日志级别大于等于DEBUG的信息
        3、INFO,标识信息,使用Log.i输出绿色且日志级别大于等于INFO的信息
        4、WARN,警告信息,使用Log.w输出橙色且日志级别大于等于WARN的信息
        5、ERROR,错误信息,使用Log.e输出红色且日志级别大于等于ERROR的信息


8、Python+selenium自动化
    a.自动化测试用例如何编写:
      1.用例自己设计的,一般业务流程为主(登录--完成一个业务--退出)
      2.从系统测试用例中进行筛选,再来设计用例
      
    b.自动化测试发现BUG多吗?
       不多,已经测试通过的基本功能再进行自动化脚本编写和在后续版本执行自动化测试,
       它主要是保证已经测试通过的功能在新版本更新后没有问题。
       
    c.隐性等待与显性等待的区别
      1.作用域不同:隐式为全局元素,是设置全局的等待,显式等待为单个元素有效
      2.使用方法不同:隐式等待直接通过驱动对象调用,而显式等待方法封装在WebDriverWait类中
      3.达到最大超时时长后抛出的异常不同:隐式等待默认检测频率为0.5s,
        超时异常为NoSuchElementException;显式等待超时异常为TimeoutException
        
    d.一个元素无法定位,考虑因素:
      1.页面加载过慢,需要添加等待时间
      2.页面包含iframe框架
      3.元素为动态元素,需要通过父节点/兄弟节点定位
      4.元素不能操作:判断元素是否可用、是否可见 

你可能感兴趣的:(总结-3)