python简单面试题(2)
<p> 前面写了一篇关于面试测试遇到的一些python面试题,有部分朋友留言说挺不错的,于是安静又收集了一批面试题,供明年的金3银4做准备(这次安静会写一批python的面试题和我们测试的面试题)</p><h3><strong>1、自动化流程是什么?</strong></h3>
<p>首先搭建环境,然后根据项目搭建自动化框架,编写自动化用例,整理用例,自动生成测试报告,然后集成到jenkins上进行操作</p>
<h3>2、app出现ANR和crash如何操作?</h3>
<p>出现ANR和crash进行复现抓取日志(adb命令)</p>
<h3>3、在自动化的过程中出现用例执行失败,应该怎么做?</h3>
<p>编写自动化用例的时候断言编写清楚,然后也可以通过用例失败后进行截图进行保存,方便我们后续查看用例失败原因,自动化用例失败后,进行手工操作,查看是否真的存在问题,如果不存在,可以查看代码是否书写错误</p>
<h3>4、在web和app中,一个元素明明定位到了,但是点击无效</h3>
<ul>
<li>web自动化中我们可以通过JS进行点击元素,</li>
<li>app自动化中如果是H5页面的时候没有办法点击,我们需要用到webdriver中的触摸模块</li>
<li>app自动化中如果点击无效,我们可以通过坐标的方式进行模拟点击</li>
</ul>
<h3>5、app测试和web测试有什么区别?</h3>
<p>整体来说,web测试和app测试一般没有区别,都需要进行需求评审,用例评审,提bug,提交测试报告。唯一区别的就是app测试需要进行安装,下载,升级,覆盖以及冷启动和热启动,还有手机上的电话,电量不足,信息,以及其他软件的交互测试</p>
<h3>6、自动化中如何截图</h3>
<p>通过函数 <span class="cnblogs_code">get_screensho t_as_file(self,filename)</span> 进行截图</p>
<h3>7、目前测试都需要依赖登录,自动化中如何操作?</h3>
<ul>
<li>如果是接口自动化的话可以使用session进行保持会话,然后再执行登录后的操作</li>
<li>如果是web自动化的话可以进行定位输入账号密码完成登录</li>
<li>如果是app自动化的话可以进行定位账号密码输入完成登录</li>
</ul>
<h3>8、你在自动化中使用过数据驱动吗?</h3>
<p>一般使用ddt数据驱动来进行存储数据,有时候也会使用paramunittest</p>
<h3>9、有两组数据分别为a= b=[‘a’,'b','c','d','e'],通过python如何成c=['a1','b2','c3','d4','e5']</h3>
<div class="cnblogs_code">
<pre>a=
b </span>= [<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">b</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">c</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">d</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">e</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">]
c </span>=
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
打印结果:
[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">a1</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">b2</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">c3</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">d4</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">e5</span><span style="color: rgba(128, 0, 0, 1)">'</span>]</pre>
</div>
<h3>10、通过python实现9乘9口诀</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 9*9口诀</span>
<span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(1,10<span style="color: rgba(0, 0, 0, 1)">):
</span><span style="color: rgba(0, 0, 255, 1)">for</span> j <span style="color: rgba(0, 0, 255, 1)">in</span> range(1,i+1<span style="color: rgba(0, 0, 0, 1)">):
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">%s*%s=%s</span><span style="color: rgba(128, 0, 0, 1)">"</span>%(i,j,i*j),end=<span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">""</span><span style="color: rgba(0, 0, 0, 1)">)
输出结果:
</span>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 </pre>
</div>
<h3>11、通过python实现‘hello_world_anjing’变成[‘hello’,‘world’,‘anjing’]</h3>
<div class="cnblogs_code">
<pre>a = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">hello_world_anjing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
c </span>= a.split(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">_</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 输出结果:</span><span style="color: rgba(0, 128, 0, 1)">
#</span><span style="color: rgba(0, 128, 0, 1)"> ['hello', 'world', 'anjing']</span></pre>
</div>
<h3>12、一个列表通过python判断有多少个正数和负数</h3>
<div class="cnblogs_code">
<pre>a =
b </span>=<span style="color: rgba(0, 0, 0, 1)"> []
c </span>=<span style="color: rgba(0, 0, 0, 1)"> []
</span><span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> a:
</span><span style="color: rgba(0, 0, 255, 1)">if</span> i><span style="color: rgba(0, 0, 0, 1)">0:
b.append(i)
</span><span style="color: rgba(0, 0, 255, 1)">elif</span> i <<span style="color: rgba(0, 0, 0, 1)"> 0:
c.append(i)
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">pass</span>
<span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(len(b))
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(len(c))
</span><span style="color: rgba(128, 0, 0, 1)">
执行结果:
5
4</span><span style="color: rgba(128, 0, 0, 1)"><br></span></pre>
</div>
<h3>13、通过python如何实现字符串和列表的转换</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 字符串转换列表</span>
a = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">anjing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
c </span>=<span style="color: rgba(0, 0, 0, 1)"> list(a)
d </span>= a.split(<span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(d)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 列表转换字符串</span>
a = [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]
c </span>=<span style="color: rgba(128, 0, 0, 1)">''</span><span style="color: rgba(0, 0, 0, 1)">.join(a)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(c)</pre>
</div>
<h3> 14、列表去重</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 列表去重</span>
a = [<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">]
c </span>=<span style="color: rgba(0, 0, 0, 1)"> set(a)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> {'2', '3', '1', '4'}</span></pre>
</div>
<h3>15、python中的__init__表示什么</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 初始化函数,用来完成一些默认的设定</span>
<span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> test():
</span><span style="color: rgba(0, 0, 255, 1)">def</span> <span style="color: rgba(128, 0, 128, 1)">__init__</span><span style="color: rgba(0, 0, 0, 1)">(self):
self.name </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">anjing</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
self.age </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">18</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
a </span>=<span style="color: rgba(0, 0, 0, 1)"> test()
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">我的名字是:%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>%<span style="color: rgba(0, 0, 0, 1)">a.name)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">我的年龄是:%s</span><span style="color: rgba(128, 0, 0, 1)">'</span>%<span style="color: rgba(0, 0, 0, 1)">a.age)
</span><span style="color: rgba(128, 0, 0, 1)">
我的名字是:anjing
我的年龄是:18</span></pre>
</div>
<h3>16、对列表进行翻转</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 列表进行翻转</span>
a =
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(a[::-1<span style="color: rgba(0, 0, 0, 1)">])
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> </span></pre>
</div>
<h3>17、loging模块是什么?有什么作用?</h3>
<p>loging属于日志模块,在我们编写脚本的时候可以告诉我们每一步都在干什么,如果报错的话,方便我们进行分析数据,也就是我们平常说的打点的作用</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> logging
logging.basicConfig(level</span>=<span style="color: rgba(0, 0, 0, 1)">logging.DEBUG,
format</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%(asctime)s %(filename)s %(levelname)s %(message)s</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
datefmt</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">%a, %d %b %Y %H:%M:%S</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
filename</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">/tmp/test.log</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
filemode</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">w</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
logging.debug(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">debug message</span><span style="color: rgba(128, 0, 0, 1)">'</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 低级别的,调试信息</span>
logging.info(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">info message</span><span style="color: rgba(128, 0, 0, 1)">'</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 正常信息</span>
logging.warning(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">warning message</span><span style="color: rgba(128, 0, 0, 1)">'</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 警告信息</span>
logging.error(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">error message</span><span style="color: rgba(128, 0, 0, 1)">'</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 错误信息</span>
logging.critical(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">critical message</span><span style="color: rgba(128, 0, 0, 1)">'</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 高级别的 # 严重错误信息</span></pre>
</div>
<h3>18、append和extend的区别</h3>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> append</span>
a =
c </span>=
a.append(c)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(a)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> ]</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> extend</span>
<span style="color: rgba(0, 0, 0, 1)">
a </span>=
c </span>=
a.extend(c)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(a)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> </span></pre>
</div>
<h3>19、通过代码介绍下zip函数用法</h3>
<p>zip()函数在运算时,会以一个或者多个序列作为参数,返回一个元祖的列表,zip()参数口语接受任何类型的序列,通过也支持多个参数。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 列表</span>
a =
b </span>=
c </span>=
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> [(1, 3), (2, 4)]</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 元祖</span>
a = (1,2<span style="color: rgba(0, 0, 0, 1)">)
b</span>= (3,4<span style="color: rgba(0, 0, 0, 1)">)
c </span>=
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> [(1, 3), (2, 4)]</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 字符串</span>
a = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">12</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
b </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">34</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
c </span>=
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(c)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> [(1, 3), (2, 4)]</span></pre>
</div>
<h3>20、如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。 求1000以内的水仙花数(3位数)</h3>
<div class="cnblogs_code">
<pre>sxh =<span style="color: rgba(0, 0, 0, 1)"> []
</span><span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(100, 1000<span style="color: rgba(0, 0, 0, 1)">):
s </span>=<span style="color: rgba(0, 0, 0, 1)"> 0
m </span>=<span style="color: rgba(0, 0, 0, 1)"> list(str(i))
</span><span style="color: rgba(0, 0, 255, 1)">for</span> j <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> m:
s </span>+= int(j)**<span style="color: rgba(0, 0, 0, 1)">len(m)
</span><span style="color: rgba(0, 0, 255, 1)">if</span> i ==<span style="color: rgba(0, 0, 0, 1)"> s:
sxh.append(i)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100-999的水仙花数:%s</span><span style="color: rgba(128, 0, 0, 1)">"</span> %<span style="color: rgba(0, 0, 0, 1)"> sxh)
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 100-999的水仙花数:<br></span></pre>
</div><br><br>
来源:https://www.cnblogs.com/qican/p/12144942.html
頁:
[1]