New Online Game on Android with 3D Style, over 700 Pokemon, Mega Evolve, Z Moves on Pocket Trainer

Pokemonercom에 다시 오신 것을 환영합니다

나는 포켓몬이다 그래서 오늘, 우리는 모바일 게임을 할 것입니다 소년 보자 좋아, 오늘, 우리는 모바일 온라인 게임을 할 것이다 포켓 트레이너이고 Android에서 게임을 할 수 있습니다

그리고이 게임은 너무 무거워서 파일 크기가 700 MB 이상입니다 무언가를 살펴 보겠습니다 그래서이 게임에는 3D 스타일로 멋진 캐릭터가 있다고 말할 수 있습니다 Pokemon Black and White에서 캐릭터를 선택할 수 있습니다 그런 다음 부자 인 경우 Pokemon Sun / Moon 또는 Pokemon Red의 캐릭터로 전환 할 수 있습니다

그래서이 게임에서는 메가 에볼루션 (Mega Evolution)과 Z 이동 (Z Moves)으로 700 가지가 넘는 포켓몬을 포착 할 수 있습니다 당신은 PK를 가지고 친구와 놀 수 있습니다 음악은 좋고 그래픽도 좋다 이제는 더 많은 게임과 더 많은 비디오를 얻기 위해 Pokemonercom을 구독하고 비디오를 공유하고 싶다는 것을 기억하십시오

Automated Testing (Android Game Developer Summit 2018)

XIN LIU : 안녕하세요 나는 NetEase 게임의 신화입니다

오늘 저는 Airtest 프로젝트에 대해 이야기 할 것입니다 차세대 자동화 테스트 팀 2 달 전 JDC에서 우리가 여기서 시작했습니다 오픈 소스 기반 프로젝트 여기 얼마나 많은 사람들이 그것에 대해 들어 봤습니까? 오

꽤 많이 승인 오늘 저는이 세 가지 주제에 관해 이야기 할 것입니다 테스트에서의 도전 과제, Airtest 프로젝트 이러한 문제를 해결하는 데 도움을 줄 수 있습니다 그리고 또한 더 큰 규모의 실제 장치의 내부 우선 순위 테스트

그래서 첫 번째 문제는 우리가 너무 많은 게임을 가지고 있다는 것입니다 NetEase 게임에서 테스트 할 수 있습니다 이 게임은 2014 년에 개발하여 출시 한 게임입니다 우리는 150 가지 이상의 모바일 게임을 출시했습니다 또한 우리는 10 년 이상 여러 PC 게임을 운영해 왔습니다

그렇다면이 게임의 높은 품질을 어떻게 보장 할 수 있을까요? 또 다른 문제는 Android 기기 조각화입니다 그리고 안드로이드 시스템이 오픈 소스이기 때문에, OEM은 자신의 안드로이드 폰을 사용자 정의 할 수 있습니다 그리고이 그래프는 중국의 상황을 보여줍니다 Samsung, Huawei, Xiaomi를 볼 수 있습니다 각 모델에는 수십 개의 Android 모델이 있으며, 각 모델마다 화면 해상도가 다릅니다

다른 시스템 API 또는 심지어 그래픽 드라이버도 포함됩니다 NetEase 게임에서는 일반적으로 게임을 출시하기 전에 200 개 이상의 안드로이드 폰을 테스트합니다 그런 다음 테스트의 차이점을 살펴 보겠습니다 앱과 게임 사이 첫 번째 게임은 대개 우리 게임입니다

여러 플랫폼에서 릴리스됩니다 안드로이드, IOS와 같은; 같은 게임 버전 다른 플랫폼에서 그리고 때때로 데스크톱에서 그리고 지금 막 우리는 크롬 OS를 말했다, 맞다 그리고 때로는 팀 HTML5 플랫폼, 콘솔 또는 심지어 VR

다음 차이점은 우리가 더 적은 지원을 받았다는 것이다 제 3 자로부터 내 말은, 테스트 프레임 워크 또는 테스트 도구와 같은, 및 플랫폼 앱과 달리 Google은 앱 개발자에게 UI Automator와 같은 테스트 프레임 워크를 사용하거나 [무적]입니다 또한 테스트 도구는 Android Studio에 통합되어 있습니다

이제 우리는 Firebase 테스트 랩을 사용하여 응용 프로그램을 테스트합니다 또 다른 큰 문제는 게임은 항상 더 많은 테스트 케이스가 필요하다는 것입니다 사용자가 있기 때문에 더 많은 콘텐츠가 있습니다 앱에서보다 게임에서 재생할 수 있습니다 따라서 테스트 케이스는 게임에서 기하 급수적으로 증가합니다

그렇다면이 문제를 어떻게 해결할 수 있을까요? 우리는 점점 더 많은 사람들을 고용하여 테스트를 할 수 있습니다 그러나 테스트를 위해 더 많은 사람들을 고용해야합니다 200 대의 안드로이드 폰에서, 그건 용납 될 수없는 것 같아요 그것이 중국에 있더라도 따라서 자동화가 도움이됩니다

사실, 우리는 3 년간이 프로젝트를 개발했습니다 내부적으로 작년에 Google I / O에서 Firebase Test Lab과 이야기를 나누었습니다 팀 그리고 우리는이 프로젝트에 대한 오픈 소싱을 공동 작업합니다

그래서 먼저 Airtest IDE를 소개하겠습니다 그것은 데스크탑 IDE입니다 오른쪽은 거울 창입니다 ADB를 통해 PC와 연결하는 Android 휴대 전화 그리고 중간 부분은 코드 편집기입니다 여기서 임의의 파이썬 코드를 작성할 수 있습니다

그리고 왼쪽 부분은 계층 구조를 보여줍니다 이 Unity 게임의 UI 계층 구조, 또한 테스트 프레임 워크에서 제공하는 API도 제공합니다 그리고 화면 창에서 작업 할 때, 코드 편집기에서 테스트 코드가 자동으로 생성됩니다 데모를 보자 네

녹음 버튼을 클릭하십시오 터치 액션을 수행하면 파이썬으로 문장을 생성한다 또한 편집 할 수 있습니다 스 와이프 동작 그리고 나서 우리는 1 초를 풀 수 있습니다

또한 UI의 어설 션을 표시하십시오 그런 다음이 휴대 전화에서 바로 실행할 수 있습니다 그것이 효과가 있는지보기 위해서 테스트를 실행 한 후 오, 예, 작동 했어요 실행 후 HTML 보고서를 확인할 수 있습니다

테스트의 모든 단계를 보여줍니다 어떤 단계가 잘못되면 빨간색으로 라벨이 지정되고, 그리고 당신은 실패 지점을 볼 수 있습니다 우리는 두 가지 기본 테스트가 있다는 것을 눈치 챘을 것입니다 여기 프레임 워크 첫 번째는 Airtest 프레임 워크입니다

이미지 인식 [INAUDIBLE] 지식을 사용합니다 UI 요소를 찾습니다 그런 다음 사용 장치 API에서 시뮬레이션 된 입력을 수행합니다 이것은 Airtest의 구조입니다 우리는 시뮬레이션 된 입력과 같은 간단한 테스트 API를 사용자에게 제공합니다

마치 삽입하다 그런 다음 이미지 인식을 사용하여 UI를 찾습니다 그런 다음 플랫폼 API의 기본 추상 레이어가 있습니다 우리는 다양한 플랫폼의 입력 API를 시뮬레이션합니다 사용자가 스크립트를 실행할 수 있도록 Android, iOS 및 Windows와 같은 다양한 플랫폼에서 및 VR

Poco라는 또 다른 프레임 워크가 있습니다 이 프레임 워크는 애플 리케이션을위한 작업 프레임 워크와 유사합니다 Android 용 UI Automator와 유사합니다 그러나 게임의 대부분은 그래픽 API를 사용합니다 UI 위젯을 렌더링하기 위해 OpenGL이나 Vulkan을 사용합니다

따라서 Android 용 UI 자동화 프로그램을 게임용으로 직접 사용할 수는 없습니다 그래서 우리는 포코 (Poco)를 개발했습니다 이것이 작동하는 방식입니다 또한 기본 추상 레이어가 있습니다 여기에 다른 게임 엔진에 대한 장치 추상화가 있습니다

우리는 각 게임 엔진에 SDK를 제공합니다 테스트 프레임 워크가 통신 할 수있는 게임 엔진 우리는 JSON RPC입니다 그리고 우리는 다른 게임 엔진을 통합합니다 그래서 우리는 다른 게임 엔진에 대한 테스트를 작성할 수 있습니다

또한 맞춤 엔진 아침에 나는 대부분의 사용자가 맞춤 엔진을 사용하고있는 것을 보았습니다 우리는 다중 언어 SDK를 제공하므로 자신의 게임 엔진에 구현할 수 있습니다 우리의 테스트 프레임 워크와 도구를 사용하기 시작하십시오 여기에 비교가 있습니다

Airtest는 이미지 인식을 사용하여 UI, 시뮬레이션 된 입력을 수행하려면 플랫폼 API를 사용하십시오 여기에 멋진 점은 어떤 도구가 필요합니다 휴대 전화를 연결하고 사용하기 만하면됩니다 또한 여러 플랫폼을 지원합니다 그리고 Poco는 UI 계층 검사를 사용합니다

JSON RPC를 사용하여 게임 엔진의 SDK와 통신 할 수 있습니다 이제 SDK를 통합해야합니다 일반적으로 10 분 미만이 소요됩니다 그리고 이제 우리는 Unity와 Cocos, 두 개의 게임 엔진을 지원합니다 또한 Android 기본 앱인 SDK를 구현합니다

접근성 서비스를 사용합니다 따라서 통합 할 필요가 없습니다 Android 기본 앱 및 맞춤 게임용 앱으로 엔진 그렇다면 우리는 사용할 프레임 워크를 어떻게 선택합니까? 다음은 우리의 제안입니다 실제로, NetEase에서는 내부적으로 다양한 유형의 게임에 대한 수천 가지 테스트 Airtest의 장점은 분명합니다

계측을 필요로하지 않습니다 그리고 오픈 CV를 사용하여 단언하기, UI의 주장을하기 위해, 신뢰할 수 있고, 사용자가 볼 것으로 예상되는 내용을 정확히 확인하기 때문입니다 Poco는 UI 계층 검사를 사용하므로, 3D의 경우 특히 더 정확할 수 있습니다 객체가 게임에서 방향을 바꿀 때의 객체입니다 그리고이 Poco는 테스트 프레임 워크와 비슷합니다

UI 자동화와 같은 앱의 경우 그리고 그것은 게임에서 누락 된 부분을 다룹니다 그리고 두 달 전에이 두 프로젝트 GDC를 발표했습니다 다운로드 수는 6,000 회에 달하고 1000 개 이상의 별이 있습니다 이 두 달 동안 그리고 우리 프로젝트를 시도해보고 GitHub에서 우리를 주저하십시오

그러나 시작되었습니다 이 두 달 동안 두 가지 새로운 기능이 추가되었습니다 먼저 iOS를 지원합니다 사실, 작년에 iOS를 지원했습니다 그러나 성능은 발표하기에 충분하지 않습니다

이 데모를 보자 iOS를 x 코드와 연결합니다 그런 다음 Android 휴대 전화와 마찬가지로 화면을 조작 할 수 있습니다 그리고 이것은 우리 게임 중 하나입니다 그런 다음이 iPhone에서 테스트를 실행할 수 있습니다

그게 전부 야 이 iOS 지원의 뒷 패널 페이스 북의 웹 여행사에서 유래했습니다 그러나 웹 여행사, 문제는 너무 느리다는 것입니다 간단한 터치 동작은 1 초 정도 걸릴 수 있지만, 게임 자동화에는 용납되지 않습니다 따라서 지난 달 대부분의 API를 최적화합니다

이제 Airtest IDE에서 프레임 속도를 최대 15 FPS까지 높일 수 있습니다 또 다른 특징은 웹 페이지 자동화를 지원한다는 것입니다 IDE에서 Chrome 브라우저를 열 수 있습니다 그런 다음 Chrome에서 작동 할 수 있습니다 그러면 코드가 자동으로 생성됩니다

네 [INAUDIBLE]은 Selenium 프레임 워크를 기반으로합니다 또한 Airtest API를 사용하여 삽입하여 테스트를 실행 한 다음 보고서를 생성하십시오 Selenium은 웹 페이지 자동화 분야에서 매우 미숙하기 때문에, 우리는 그것을 다시 만들 이유가 없습니다 그래서 우리는 Airtest IDE 용 플러그인을 작성했습니다

이 웹 페이지 자동화 기록에 도움이됩니다 네가 게임을 풀어 주면 유용 할거야 HTML 플랫폼 지금까지 우리는 Airtest 프로젝트에 대해 이야기했습니다 Airtest IDE를 사용하여 테스트를 기록하고 실행할 수 있습니다

PC와 휴대 전화에서 그러나 우리는 어떻게 수백 개의 안드로이드 폰을 테스트 할 수 있습니까? 우선 Firebase Test Lab입니다 Firebase 테스트 랩은 테스트 서비스입니다 Google Firebase 팀 그리고 우리 팀과 협력하는 것은 무엇입니까? Airtest 및 Poco 스크립트 실행을 지원합니다 Firebase 테스트 랩에서

그리고 Airtest IDE를 사용하여 테스트를 번들로 제공 할 수 있습니다 스크립트를 APK에 추가하십시오 그런 다음 FTL 웹 페이지에 업로드 할 수 있습니다 그런 다음 계측 테스트를 시작할 수 있습니다 FTL에서 제공하는 장치 클라우드를 사용하십시오

이것이 우리 내부 장치 팜입니다 우리는 200 개의 장치로 구성된 장치 팜을 설정했습니다 200 개의 Android 기기 그리고 우리는이 숫자가 2,000 개의 스크립트가 될 수 있다고 기록했습니다 매주 다른 게임 스크립트를 실행합니다

우리 게임은 매주 업데이트되기 때문에 그리고 그것이 어떻게 작동하는지 보겠습니다 그것은 단지 [불충 한] 시험의 주위에이다 Airtest IDE에 의해 생성됩니다 그래, 그게 다야 이 자동화 프로젝트의 로드맵에 대해서는, 우리는 더 많은 고객을 지원하고자했습니다

iOS, Android 에뮬레이터 및 웹 페이지 등이 있습니다 이들은 더 나은 버전입니다 지금 시도해 볼 수 있습니다 버그를 발견하면 우리에게 문제를 해소하십시오 또한 우리는 하이브리드 응용 프로그램이며 미래에는 UnrealEngine입니다

또한 Android TV도 지원했습니다 하지만 Chrome OS에 대해 잘 모르겠습니다 하지만 어쩌면 작동 할 수도 있습니다 그리고 또 다른 중요한 것은 우리는 오픈 소스를 구축하고자합니다 커뮤니티에서이 프로젝트를 진행하고 있으며 점점 더 많은 개발자들이 그것을 좋아하고이 프로젝트에 참여하십시오

네, 고마워요 그리고 어떤 질문? 관객 : 당신이 사용하고 있다고 언급했습니다 접근성 서비스 그 때 어떤 문제가 있었습니까? 그것은 최근에 제한 되었습니까? 신화 : 언제? 청중 : 접근성 서비스 이 런처를 사용하는 앱은 제한적 이었지만, 또는 역방향 액세스를 시도한 앱 [INAUDIBLE] 큰 도청 그것들은 제한되어 있기 때문에 이용되고 있었다

너희들이 그것으로부터 어떤 영향을 본 적이 있니? XIN LIU : 기본 앱의 UI 테스트를 위해, 우리는 어떤 제한도 보이지 않는다 나는 그것이 UI 자동화 또는 [INAUDIBLE]가하는 것을 할 수 있다고 생각합니다