zoukankan      html  css  js  c++  java
  • python简单面试题(2)

     前面写了一篇关于面试测试遇到的一些python面试题,有部分朋友留言说挺不错的,于是安静又收集了一批面试题,供明年的金3银4做准备(这次安静会写一批python的面试题和我们测试的面试题)

    1、自动化流程是什么?

    首先搭建环境,然后根据项目搭建自动化框架,编写自动化用例,整理用例,自动生成测试报告,然后集成到jenkins上进行操作

    2、app出现ANR和crash如何操作?

    出现ANR和crash进行复现抓取日志(adb命令)

    3、在自动化的过程中出现用例执行失败,应该怎么做?

    编写自动化用例的时候断言编写清楚,然后也可以通过用例失败后进行截图进行保存,方便我们后续查看用例失败原因,自动化用例失败后,进行手工操作,查看是否真的存在问题,如果不存在,可以查看代码是否书写错误

    4、在web和app中,一个元素明明定位到了,但是点击无效

    • web自动化中我们可以通过JS进行点击元素,
    • app自动化中如果是H5页面的时候没有办法点击,我们需要用到webdriver中的触摸模块
    • app自动化中如果点击无效,我们可以通过坐标的方式进行模拟点击

    5、app测试和web测试有什么区别?

    整体来说,web测试和app测试一般没有区别,都需要进行需求评审,用例评审,提bug,提交测试报告。唯一区别的就是app测试需要进行安装,下载,升级,覆盖以及冷启动和热启动,还有手机上的电话,电量不足,信息,以及其他软件的交互测试

    6、自动化中如何截图

    通过函数 get_screensho t_as_file(self,filename) 进行截图

    7、目前测试都需要依赖登录,自动化中如何操作?

    • 如果是接口自动化的话可以使用session进行保持会话,然后再执行登录后的操作
    • 如果是web自动化的话可以进行定位输入账号密码完成登录
    • 如果是app自动化的话可以进行定位账号密码输入完成登录

    8、你在自动化中使用过数据驱动吗?

    一般使用ddt数据驱动来进行存储数据,有时候也会使用paramunittest

    9、有两组数据分别为a=[1,2,3,4,5] b=[‘a’,'b','c','d','e'],通过python如何成c=['a1','b2','c3','d4','e5']

    复制代码
    a=[1,2,3,4,5]
    b = ["a", "b", "c", "d", "e"]
    c = [str(i)+str(j) for i,j in zip(b, a)]
    print(c)
    
    
    打印结果:
    ['a1', 'b2', 'c3', 'd4', 'e5']
    复制代码

    10、通过python实现9乘9口诀

    复制代码
    # 9*9口诀
    for i in range(1,10):
        for j in range(1,i+1):
            print("%s*%s=%s"%(i,j,i*j),end=" ")
        print("")
    
    输出结果:
    1*1=1 
    2*1=2 2*2=4 
    3*1=3 3*2=6 3*3=9 
    4*1=4 4*2=8 4*3=12 4*4=16 
    5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
    6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
    7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
    8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
    9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
    复制代码

    11、通过python实现‘hello_world_anjing’变成[‘hello’,‘world’,‘anjing’]

    复制代码
    a = 'hello_world_anjing'
    c = a.split('_')
    print(c)
    
    
    # 输出结果:
    # ['hello', 'world', 'anjing']
    复制代码

    12、一个列表通过python判断有多少个正数和负数

    复制代码
    a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
    b = []
    c = []
    for i in a:
        if i>0:
            b.append(i)
        elif i < 0:
            c.append(i)
        else:
            pass
    print(len(b))
    print(len(c))
    
    执行结果:
    5
    4
    复制代码

    13、通过python如何实现字符串和列表的转换

    复制代码
    # 字符串转换列表
    a = 'anjing'
    c = list(a)
    d = a.split(' ')
    print(d)
    
    # 列表转换字符串
    a = ['1','2','3','4']
    c =''.join(a)
    print(c)
    复制代码

     14、列表去重

    # 列表去重
    a = ['1','2','3','4','2','1','4']
    c = set(a)
    print(c)
    
    # {'2', '3', '1', '4'}

    15、python中的__init__表示什么

    复制代码
    # 初始化函数,用来完成一些默认的设定
    
    class test():
        def __init__(self):
            self.name = 'anjing'
            self.age = '18'
    
    a = test()
    print('我的名字是:%s'%a.name)
    print('我的年龄是:%s'%a.age)
    
    
    我的名字是:anjing
    我的年龄是:18
    复制代码

    16、对列表进行翻转

    # 列表进行翻转
    a = [1,2,3,4,5]
    print(a[::-1])
    
    
    # [5, 4, 3, 2, 1]

    17、loging模块是什么?有什么作用?

    loging属于日志模块,在我们编写脚本的时候可以告诉我们每一步都在干什么,如果报错的话,方便我们进行分析数据,也就是我们平常说的打点的作用

    复制代码
    import logging
    
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                        datefmt='%a, %d %b %Y %H:%M:%S',
                        filename='/tmp/test.log',
                        filemode='w')
    logging.debug('debug message') # 低级别的,调试信息
    logging.info('info message') # 正常信息
    logging.warning('warning message') # 警告信息
    logging.error('error message') # 错误信息
    logging.critical('critical message') # 高级别的 # 严重错误信息
    复制代码

    18、append和extend的区别

    复制代码
    # append
    a = [1,2,3,4,5]
    c = [6,7]
    a.append(c)
    print(a)
    
    # [1, 2, 3, 4, 5, [6, 7]]
    
    # extend
    
    a = [1,2,3,4,5]
    c = [6,7]
    a.extend(c)
    print(a)
    
    # [1, 2, 3, 4, 5, 6, 7]
    复制代码

    19、通过代码介绍下zip函数用法

    zip()函数在运算时,会以一个或者多个序列作为参数,返回一个元祖的列表,zip()参数口语接受任何类型的序列,通过也支持多个参数。

    复制代码
    # 列表
    a = [1,2]
    b = [3,4]
    c = [i for i in zip(a,b)]
    print(c)
    
    # [(1, 3), (2, 4)]
    
    # 元祖
    a = (1,2)
    b= (3,4)
    c = [i for i in zip(a,b)]
    print(c)
    
    # [(1, 3), (2, 4)]
    
    # 字符串
    a = '12'
    b = '34'
    c = [i for i in zip(a,b)]
    print(c)
    
    # [(1, 3), (2, 4)]
    复制代码

    20、如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。 求1000以内的水仙花数(3位数)

    复制代码
    sxh = []
    for i in range(100, 1000):
        s = 0
        m = list(str(i))
        for j in m:
            s += int(j)**len(m)
            if i == s:
                sxh.append(i)
    print("100-999的水仙花数:%s" % sxh)
    
    # 100-999的水仙花数:[153, 370, 370, 371, 407]
    复制代码
     
     
     
     
    来源:
    测试-安静    https://www.cnblogs.com/qican/
     
     
  • 相关阅读:
    hdu 2639 Bone Collector II
    文件打包bundle
    iOS UITextField垂直居中
    Mac删除废纸篓中的单一文件和文件夹
    Swift 初见
    关于 Swift
    NSString和NSDate的转换
    iOS开发之iOS7设置状态栏字体颜色
    在当前界面中隐藏状态栏
    适合所有测试人员读的书籍
  • 原文地址:https://www.cnblogs.com/rxxbb123/p/14234022.html
Copyright © 2011-2022 走看看