面试题(一)

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. 你们日常的工作和测试计划一致吗?

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

 

 

 


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/9463940.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(289)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-08-12 解决:return _compile(pattern, flags).search(string) TypeError: expected string or buffer
点击右上角即可分享
微信分享提示