 Hello, everyone. Welcome to my presentation. My topic is set up and automated Wi-Fi and Bluetooth testing system for HL. My name is Li Xiaomin. I work for Fujichu's HL team since 2018. I have several presentations in the past or memory meeting. Maybe you can met me. In this talk, I will talk about the first idea of testing Wi-Fi and the second integrated Google Android. It is shown in the Bluetooth testing. In the beginning, I will first introduce how we test Wi-Fi in the past days. HL have Wi-Fi application every time we want to test Wi-Fi function. We will start out the Wi-Fi application and choose Wi-Fi SSID and input the password and collect it and then check the collecting status. But this process will cost our Earth much much time. If it is a real industrial product, it will cost us too much money. So we want to use Wi-Fi as a new method to automate it. At first, we don't want to use Wi-Fi as a new build. We want to find if there is any existing tool or system. So we will find it. But most of these tools or systems are designed for Android or desktop apps. Most of them are very complex. They have many dependencies. If we want to put this system to a job, it will cost us too much time. Maybe we need to add many other packages to a job's image. At the last system, we will take too much time to use it. For example, it is a common web automated test system. We can see that there are many, many components inside it. In the first sign, we will get an impression that it is very complex if we want to port it. Or if we want to start it, it will take too much time. So how about we develop a new system from scratch? What the new system should be? The latest dependency is better. In the second, it must provide a common line of faith that we can extend it. It is easy to get a hardware, high cut and hard solve the system. We can generate test reports. Test reports are very important. And the hardware and solve the way out should have a strong support. And it is better to extend our system in other framework. So we design a system like this one. This top of the board has a joint side. And this is a wireless AP router. This is a wireless router. This is a PC host. And then I will introduce these components in details. First, what is OpenWRT? What is the wireless OpenWRT inside the wireless router? OpenWRT is an open source operating system. It is designed easy to control. While OpenWRT, we can easily control Wi-Fi settings using a shell script. And we can now use the material to show foreign documentation. We can find help to configure OpenWRT. OpenWRT is very popular. It has a lot of support devices. Of course, it is open source. And how? How we can deploy OpenWRT to our device? First, how can we get OpenWRT running? First, we need to get a support device. And then we need to download OpenWRT software and build it. And insert the flash image to your wireless router. And then we need to read the document and use it. I think OpenWRT is very useful. The user in the face don't have much difference with the common so-home wireless router. And you can buy a wireless router with OpenWRT already installed. Although I think it's not a bad idea. It will save you much time. This is OpenWRT screen shot. In this picture, in this screen shot, we always show OpenWRT's Wi-Fi settings in the face. Here, we can see there are many arguments we can choose. But most of the time, we can never do it as before. If we don't want to use OpenWRT, we can also use, for example, DDWRT, Tomato, or maybe other open source platform. Or you can also use HosterPad. They should all work. I think, what is Collection Manager? Let's back to the illustration of our test system. We need to use Collection Manager to control the top of the board. So what's the use of Collection Manager here? Collection Manager is a command line network manager. So what is Command Collection Manager designed for? It's designed for use with embedded wires. It's designed for use with faster result times. It's very fast to hold all of the top of the board for the wireless AP, wireless router. Fortunately, HGO provides HGO M4 image already and Collection Manager inside. So we don't need to deploy Collection Manager's diagram. We don't need to directly match my details of this diagram. We just need to know how to use it. For example, we can use Collection Manager controls that can serve as collect data. There are common commands to find a Wi-Fi signal, to collect a Wi-Fi signal, and to issue a Wi-Fi status, connection status. Collection Manager also provides an interactive model. If we need to collect a Wi-Fi signal with a password, we need to use the interactive model. But if we want to use Shell Script to automation the collection process, and we want to avoid the interactive model, and we don't want to use any advanced Shell Script technology, we can save the Wi-Fi password in some Collection Manager config files to avoid the interactive model. And how we can collect all these things together? How can we combine these all? Collection Manager, OpenWRT, and talking about HGO together. HGO is a complete test cycle. First of all, we need to do loading a test case sheet to reserve the files. We load the test case and read the test case, and we log in OpenWRT and update its Wi-Fi setting. Usually, we need to wait several seconds until the Wi-Fi router to update its refresh setting. And then, we do not need to talk to the board. We need to use Collection Manager to collect a Wi-Fi signal, to collect it to a new Wi-Fi signal. And then, at last, we need to check the Wi-Fi status and write the test result into the test report. In this new test system, we can finish over to how many new test cases, no more than one hour. And I think that test time depends on other factors. For example, your test case design mechanism, your Wi-Fi router's setting. And you can also add some user-friendly user interface, for example, Jack Hunts or other CI framework. If you do this, this test system can be scheduled. So, guys, I mean, even if they don't know the video, they don't know the video, it's technically just test system details. And then, you can integrate this test system with completed CI process. And you can also integrate Jack Hunts, the Wi-Fi report mechanism, for example, email report mechanism into the test system. And then, I want to introduce our work in the Brutus test. We have added a new tool into the Brutus test. It's Andrew's ADV. This one is ADV. And the hell is that? This is smartphone and high. If we want to use ADV, we first need to take the smart phones. It's better to take the smart phones through the privilege. We also, we only test Google Android. I can't tell you which brand, which model is easy to get in a root mission. Maybe you can try it yourself. Google and your demarc bridge also know ADV can give us much help when we test the Brutus. What is ADV? ADV is a command line utility included with Android SDK. ADV can control your device over USB from a computer. For example, you can copy files, remove files, install apps, run shop on commands. The most useful commands is to run shop commands. And we can also add other things while ADV show. For example, if we want to use ADV first, we need to enable Andrew's smart phones to bug model. Every brand, every model, smartphone have different debug model enable method. Only use ADV don't need a root mission. You only need to debug model enable. But some ADV commands need Andrew's root mission. While the ADV Brutus commands, you can use many useful ADV Brutus commands to help you test the Brutus function. For example, you can enable disable Brutus function, you can monitor Brutus status, you can take a bag of Brutus that have loads. There is many other ADV shell commands, you can check the ADV Andrews documentation. At the same time, when we want to test the Brutus function, first we need to lock in to the ADV shell, and then we can enable the Andrews smart phones Brutus. And then we need to lock in to the ADV and manually connect it to the Brutus function. And then we will check the Brutus collection status. If it fails, we can take the Brutus docks bag via the ADV shell. We can also enable the Brutus function in the smartphone and recollect. That's all. For future work, we want to integrate Wi-Fi test system into a Lava. Maybe we can separate it as a test show. We also want to optimize the test report as other Wi-Fi methods. We also want to find some practical Wi-Fi test shoes to test the Wi-Fi system support functions. That's all.