面试题(一)

1. 如何用列表切片的方式取出列表a = [1,2,3,4,5]中的3?

a[2:3]

2. 说说列表是如何排序的?

列表排序:

永久性排序:升序  sort   降序  sort(reverse=True)  

#永久性排序—升序
>>> a = [1, 5, 2, 8, 6]
>>> a.sort()
>>> a
[1, 2, 5, 6, 8]

#永久性排序—降序
>>> a = [1, 5, 2, 8, 6]
>>> a.sort(reverse=True)
>>> a
[8, 6, 5, 2, 1]

临时性排序:升序  sorted  降序  sorted(reverse=True)

#临时性排序—升序
>>> a = [1, 5, 2, 8, 6]
>>> sorted(a)
[1, 2, 5, 6, 8]
>>> a
[1, 5, 2, 8, 6]

#临时性排序—降序
>>> a = [1, 5, 2, 8, 6]
>>> sorted(a, reverse=True)
[8, 6, 5, 2, 1]
>>> a
[1, 5, 2, 8, 6]

列表反转:

永久性反转列表:reverse()

临时性反转列表:[::-1]

#永久性反转列表
>>> a = [1, 5, 2, 8, 6]
>>> a.reverse()
>>> a
[6, 8, 2, 5, 1]

#临时性反转列表
>>> a = [1, 5, 2, 8, 6]
>>> a[::-1]
[6, 8, 2, 5, 1]
>>> a
[1, 5, 2, 8, 6]

3. 如何用正则表达式匹配ip地址?

(([01]?\d?\d|2[0-4]\d|25[0-5]\d)\.){3}([01]?\d?\d|2[0-4]\d|25[0-5]\d)

4. Linux下怎么杀掉tomcat进程?

ps -ef | grep tomcat   #查出tomcat进程号

kill -9 进程号

5. 怎么处理安卓5.0以下的toast弹框?

跟测试经理沟通后,可以不考虑安卓5.0以下的系统,只考虑兼容比较新的主流的系统

6. 你们是怎么利用jenkins做持续集成的?

一般为了分担jenkins服务器的压力,会搭建jenkins的Master和Slave机,Master是jenkins服务器,Slave是本地的执行机

如何在Master上配置Slave?新建节点,设置节点(包含名字、并发构建数、远程工作目录、标签、语法和启动方式等(通过java web启动代理))

启动slave,点击lauch,会下载一个agent.jnlp文件,下载之后双击agent.jnlp,会弹出一个窗口,如果窗口显示Connected,表示slave已启动,再次刷新

在Master机上创建一个任务,输入任务的名字,构建一个自由风格的项目软件,在General中指定执行机—限制项目的运行节点,这里可以填Label的名字,也可以填执行机的名字,在构建中选择执行Windows批处理命令—切换到项目所在目录,用python运行main.py,保存,点击立即构建,这时会在远程工作目录下生成工作空间

这时候,可以从SVN上download项目代码到工作目录,进入构建后操作,选择Publish JUnit test result report,在构建后操作中填上存放xml报告的路径,在构建中修改批处理命令(用WORKSPACE的环境变量代替),保存后,立即构建

此外,还可以构建触发器,进行定时构建,每隔多长时间运行一次脚本,还可以配置邮件服务器,将测试报告发送到邮箱

7. 说出你们工作中常用的linux命令?

像ls, pwd, cd, chmod, chown, chgroup, tar, find, grep, wc, cat, mkdir, rm, rmdir, rz, sz, ifconfig等等

8. 接口自动化中的关联怎么处理?

在接口自动化中,后面一个接口的请求数据需要用到前面接口的响应数据的一部分,那么可以在存储数据的excel表中添加一列提取表达式,在这一列,如果有值表示需要提取,先提取赋值再断言,如果没值,直接断言

将后面接口的请求数据用占位符表示,前面需要提取的接口在提取表达式那一列用占位符=提取表达式表示,用openpyxl读取所有的测试数据并保存在一个列表中,在测试用例类中,ddt.data可以分解一组数据为多条测试数据,在发送请求得到响应后,判断每一条测试数据中是否包含了提取表达式,如果有,则用字符串的分割方法来以=作为分割,将字符串分割为["占位符","提取表达式"]的形式,然后定义一个全局变量global_var={},将列表中第一个元素"占位符"作为键,将提取表达式提取到的响应结果的字段作为值,存储在global_var字典中

在发送请求前,判断global_var长度是否大于0,并且请求数据是否为空,如果长度大于0且请求数据不为空,则用for循环遍历字典,如果请求数据中能用find方法找到字典中的键,则用请求数据的replace方法将字典中的键替换为字典中的值,这样就完成了接口关联处理

9. 你们日常的工作和测试计划一致吗?

大体一致,但有的时候有所调整

 

 

 

posted @ 2018-08-12 18:50  cnhkzyy  阅读(288)  评论(0编辑  收藏  举报