【社招】测开网易二面

📍面试公司:网易

🕐面试时间:7.22

💻面试岗位:测开

❓面试问题:

1.自我介绍

2.项目深挖

略(感觉自己回答的还不错,所有问题都有说法,都能打上来,这也为后面的噩梦打下了铺垫)

3.做个题吧

对一个json文件做解析,当data为false代表出错,为true代表修复完成,求出主城和白刃战的修复时间

文本:

[
{
"name": "进入主城和海图测试",
"data": false,
"error": "报错",
"time": 1703598378
},
{
"name": "进入主城和海图测试",
"data": false,
"error": "报错",
"time": 1703598678
},
{
"name": "进入白刃战测试",
"data": true,
"error": "",
"time": 1703599222
},
{
"name": "进入主城和海图测试",
"data": true,
"error": "",
"time": 1703633378
},
...
]

我写了个字符串处理的,他叫我先别写了,说一下思路,我就说先分割开每个json段,然后检测data是true还是false,如果是false就记录错误时间和对应的错误类型,只有当遇到同样类型的修复时间的时候(data=true)再去用修复时间减错误时间得到修复时间

面试官表示:可以了知道你的思路了,不用写了。字符串处理起来耗时很多的,另外,你们自动化是用python吗?(言下之意就是我们主要用py的)

确实java可能不太好处理,我们自动化也是java

(心声:我真的忘了怎么搞了,而且当时看到json数据直接就慌了,因为我根本没用过java处理json数据过,完全忘了这个是python最喜欢的数据类型,还是积累少了+心态不好呀,刚好戳中自己的软肋了,而且其实只要稍加转换语言就能反应过来,当时就是没想到)

Python-字典代替:(久远的记忆,生疏了很多,反正当场每做出来,后面还是自己掰扯出来了。。。感觉是不是要锻炼一下自己同时使用2种语言的能力?),注意点在于需要收集第一次拿到的开始和结束时间

dicts = [
    {
        "name": "进入主城和海图测试",
        "data": False,
        "error": "报错",
        "time": 1703598378
    },
    {
        "name": "进入主城和海图测试",
        "data": False,
        "error": "报错",
        "time": 1703598678
        },
    {
        "name": "进入白刃战测试",
        "data": True,
        "error": "",
        "time": 1703599222
    },
    {
        "name": "进入主城和海图测试",
        "data": True,
        "error": "",
        "time": 1703633378
    }
]

blade_true_t = blade_false_t = city_true_t = city_false_t = 0

for e in dicts:
    if e['data']==False:
        if e['name']=='进入白刃战测试':
            if blade_false_t==0:blade_false_t = e['time']
        else:
            if city_false_t==0: city_false_t = e['time']
    else:
        if e['name']=='进入白刃战测试':
            if blade_true_t==0:blade_true_t = e['time']
        else:
            if city_true_t==0:city_true_t = e['time']

blade_fix_time = blade_true_t-blade_false_t 
city_fix_time = city_true_t-city_false_t 
print(f'白刃战修复时间:{blade_fix_time}秒' if blade_true_t>0 and blade_false_t>0 else "白刃战修复时间:INF")
print(f'主城和海图修复时间:{city_fix_time}秒' if city_true_t>0 and city_false_t>0 else "INF")

(这里再附上java的json处理----因为我之前没有用java处理过json,所以不太会)

java-json文件:(注意要用下面的pom.xml配置,因为如果不用fastjson就不好做)

import java.util.*;
import java.lang.*;
import java.nio.file.*;
import com.alibaba.fastjson.JSON;

public class Main{
    public static void main(String[] args){
        try{
            String s = new String(Files.readAllBytes(Paths.get("src/fixLog.json")));
            List<LinkedHashMap> list = JSON.parseArray(s, LinkedHashMap.class);
            System.out.println(list);

            //定义首次出错和修复和时间
            int firstErrorTime_city = 0, firstFixTime_city = 0,
                 firstErrorTime_blade = 0, firstFixTime_blade = 0;

            for(LinkedHashMap map: list){
                if((boolean)map.get("data")==false){
                    if(map.get("name").equals("进入主城和海图测试")) {if(firstErrorTime_city == 0) firstErrorTime_city = (int)map.get("time");}
                    else if(firstErrorTime_blade == 0) firstErrorTime_blade = (int)map.get("time");
                }else{
                    if(map.get("name").equals("进入主城和海图测试")) {if(firstFixTime_city == 0) firstFixTime_city = (int)map.get("time");}
                    else if(firstFixTime_blade == 0) firstFixTime_blade = (int)map.get("time");
                }
            }
            int cityFixTime = firstFixTime_city>0 && firstErrorTime_city>0? firstFixTime_city - firstErrorTime_city:-1,
                    bladeFixTime = firstFixTime_blade>0 && firstErrorTime_blade>0? firstFixTime_blade - firstErrorTime_blade:-1;
            System.out.println("进入主城和海图修复时长:"+ cityFixTime);
            System.out.println("进入白刃战修复时长:"+ bladeFixTime);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

java代码对应的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>WriteFreely</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4.你一般怎么学习新语言

(我以前被问到过类似的问题)

我有2段学习新语言的经历,学校都是C,读研直接接触AI模型还要做项目,但是当时py一点都不会,就先看视频学个基础然后一边干项目一边学,后来上班了转java也是一样的

5.你了解Unity和C#吗?

以前本科的时候毕设做的unity和C#的项目,也是浅尝辄止

反思后的结构化表达:

Unity简介(个人总结版):
①Unity是什么?Unity是一款跨平台的游戏引擎,可以支持U2D或者U3D创建2d或者3d游戏并发布到PC、PS或移动端 
②Unity底层:Unity底层是C++写的,但是却支持用户用更简单的C#编写脚本,并且是图形化的操作界面 
③Unity的功能:很多组件,这里举一些例子。定义物理性状的Mesh,Mesh Render(渲染器)将材质和光照应用于物体;物理学组件rigidBody(刚体)和Collider(碰撞器),可以模拟现实中的重力和碰撞; C#脚本:实现游戏逻辑,比如扣血 ;动画播放器:可以配合脚本在适合的时候播放动画,比如开门。
④实际开发:在UnityHub上创建一个Unity项目,一进去就有个主相机和光源,可以往里面加入组件,Play就是开始调试;开发完成后,可以打包到你想要打包的平台上去

6.你了解哪些游戏测试的东西?

不太理解你说的问题

比如引擎,unity你了解吗

不是很了解

(这里感到面试官已经不是很感兴趣了,我没有提前准备这个问题,不太清楚他想要问的重点)

7.你对网易的这个项目了解多少?

更加空泛的一个问题,我仍然没有任何准备,我也不清楚他想要我回答哪方面的问题,怕说的东西low了他不感兴趣,最后也只能是一句话都说不出来草草收场

8.反问

问了引擎:自研的

技术栈:py,偶尔用go,js,C#

🙌面试感想:

面试时长50min,肯定是寄了,但是也侧面了解了他们喜欢问的问题和技术栈,还有自己需要准备一下关于文件读取输出、时间方面的java代码功底;还有对引擎,项目的了解吧

#面试问题记录#
全部评论
Unity 的优点主要体现在开发效率、兼容性和易用性上,适合多种场景: - 上手简单:可视化编辑器直观,支持拖拽操作搭建场景,脚本用 C# 语言(语法相对简洁),新手容易入门。 - 跨平台能力强:开发的内容可直接导出到 PC、手机(iOS/Android)、主机(Switch/PS/Xbox)、VR/AR 设备等,减少跨平台适配成本。 - 资源生态丰富:有官方 Asset Store 商城,提供大量现成的模型、插件、工具(如物理系统、动画插件),可直接复用,加速开发。 - 社区支持完善:全球开发者活跃,教程、文档、问题解决方案丰富,遇到问题容易找到帮助。 - 扩展性好:支持自定义插件和工具,能根据项目需求扩展功能,兼顾灵活性和开发效率。 - 对 2D/3D 开发均友好:既适合 2D 游戏(如《纪念碑谷》类),也能开发 3D 内容,适用范围广。
点赞 回复 分享
发布于 07-23 12:21 广东
import json repair_times = { "进入主城和海图测试": None, "进入白刃战测试": None } with open("test_results.json", "r", encoding="utf-8") as f: test_data = json.load(f) for item in test_data: test_name = item["name"] if test_name in repair_times and repair_times[test_name] is None: if item["data"] is True: repair_times[test_name] = item["time"] print("各测试首次修复时间:") for test, time in repair_times.items(): print(f"{test}:{time}(时间戳)")
点赞 回复 分享
发布于 07-23 12:19 广东
分享一个自己做的GitHub面试题整理项目 0voice/Campus_recruitment_interview_questions,积德积德,许愿自己和大家都能秋招过面,一起加油!
点赞 回复 分享
发布于 07-22 21:41 湖南

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务