Android测试之Keycode

问题:

昨天做测试Case,发现一个网游APK运行界面,uiautomator无法捕捉获取。

因而输入的时候只得运用(dut.onclick(int a, int y))坐标点击的方法来输入用户名和密码。

既无法具有屏幕的适应性,也使得输入代码繁杂,容易出错。

解决方法: 使用 UiDevice.getInstance().pressKeyCode(int x)方法

	String id="inteltest";
			for(int i=0;i<id.length();i++){
				char c =id.charAt(i);
				if(c >=48&&c <=57){
				UiDevice.getInstance().pressKeyCode(c-41);
				}
				else
					if(c >=97&&c <=122){
				UiDevice.getInstance().pressKeyCode(c-68);
				}
					else
						if(c >=65&&c <=90){
				UiDevice.getInstance().pressKeyCode(59);
				sleep(20);
				UiDevice.getInstance().pressKeyCode(c-36);
				}
						else
							if(c ==32){
				UiDevice.getInstance().pressKeyCode(62);
				}
							else{}
				}

 Keycode:

keycode 1 = 鼠标左键
keycode 2 = 鼠标右键
keycode 3 = Cancel
keycode 4 = 鼠标中键
keycode 8 = BackSpace 
keycode 9 = Tab 
keycode 12 = Clear(未知) 
keycode 13 = Enter 
keycode 16 = Shift_L 
keycode 17 = Control_L 
keycode 18 = Alt_L 
keycode 19 = Pause 
keycode 20 = Caps_Lock 
keycode 27 = Escape 
keycode 32 = space 
keycode 33 = Prior(PageUp键) 
keycode 34 = Next(PageDown键) 
keycode 35 = End 
keycode 36 = Home 
keycode 37 = Left 
keycode 38 = Up 
keycode 39 = Right 
keycode 40 = Down 
keycode 41 = Select(未知) 
keycode 42 = Print(PrintScreen键) 
keycode 43 = Execute(未知) 
keycode 45 = Insert 
keycode 46 = Delete 
keycode 47 = Help(未知) 
keycode 48 = 0 equal braceright
keycode 49 = 1 exclam onesuperior 
keycode 50 = 2 quotedbl twosuperior 
keycode 51 = 3 section threesuperior 
keycode 52 = 4 dollar 
keycode 53 = 5 percent 
keycode 54 = 6 ampersand 
keycode 55 = 7 slash braceleft 
keycode 56 = 8 parenleft bracketleft 
keycode 57 = 9 parenright bracketright 
keycode 65 = a A 
keycode 66 = b B 
keycode 67 = c C 
keycode 68 = d D 
keycode 69 = e E EuroSign 
keycode 70 = f F 
keycode 71 = g G 
keycode 72 = h H 
keycode 73 = i I 
keycode 74 = j J 
keycode 75 = k K 
keycode 76 = l L 
keycode 77 = m M mu 
keycode 78 = n N 
keycode 79 = o O 
keycode 80 = p P 
keycode 81 = q Q at 
keycode 82 = r R 
keycode 83 = s S 
keycode 84 = t T 
keycode 85 = u U 
keycode 86 = v V 
keycode 87 = w W 
keycode 88 = x X 
keycode 89 = y Y 
keycode 90 = z Z 
keycode 96 = KP_0 KP_0(小键盘数字0) 
keycode 97 = KP_1 KP_1(小键盘数字1) 
keycode 98 = KP_2 KP_2(小键盘数字2) 
keycode 99 = KP_3 KP_3(小键盘数字3) 
keycode 100 = KP_4 KP_4(小键盘数字4) 
keycode 101 = KP_5 KP_5(小键盘数字5) 
keycode 102 = KP_6 KP_6(小键盘数字6) 
keycode 103 = KP_7 KP_7(小键盘数字7) 
keycode 104 = KP_8 KP_8(小键盘数字8) 
keycode 105 = KP_9 KP_9(小键盘数字9) 
keycode 106 = KP_Multiply KP_Multiply(小键盘乘) 
keycode 107 = KP_Add KP_Add(小键盘加)
keycode 108 = KP_Separator KP_Separator(小键盘回车键)
keycode 109 = KP_Subtract KP_Subtract(小键盘减) 
keycode 110 = KP_Decimal KP_Decimal(小键盘小数点) 
keycode 111 = KP_Divide KP_Divide(小键盘除) 
keycode 112 = F1 
keycode 113 = F2 
keycode 114 = F3 
keycode 115 = F4 
keycode 116 = F5 
keycode 117 = F6 
keycode 118 = F7 
keycode 119 = F8 
keycode 120 = F9 
keycode 121 = F10 
keycode 122 = F11 
keycode 123 = F12 
keycode 124 = F13 
keycode 125 = F14 
keycode 126 = F15 
keycode 127 = F16 
keycode 128 = F17 
keycode 129 = F18 
keycode 130 = F19 
keycode 131 = F20 
keycode 132 = F21 
keycode 133 = F22 
keycode 134 = F23 
keycode 135 = F24 
keycode 136 = Num_Lock 
keycode 137 = Scroll_Lock(未知) 
keycode 187 = acute grave(未知) 
keycode 188 = comma semicolon(未知)(逗号 分号) 
keycode 189 = minus underscore (减号 下划线)
keycode 190 = period colon (未知 冒号)
keycode 192 = numbersign apostrophe(未知 单引号) 
keycode 210 = plusminus hyphen macron (未知 & ^)
keycode 211 = 
keycode 212 = copyright registered(未知) 
keycode 213 = guillemotleft guillemotright(未知) 
keycode 214 = masculine ordfeminine(未知) 
keycode 215 = ae AE(未知) 
keycode 216 = cent yen(未知) 
keycode 217 = questiondown exclamdown(未知) 
keycode 218 = onequarter onehalf threequarters(未知) 
keycode 220 = less greater bar(小于号 大于号 未知) 
keycode 221 = plus asterisk asciitilde(加号 星号 未知) 
keycode 227 = multiply division(乘 除)
keycode 228 = acircumflex Acircumflex(未知) 
keycode 229 = ecircumflex Ecircumflex(未知) 
keycode 230 = icircumflex Icircumflex(未知) 
keycode 231 = ocircumflex Ocircumflex(未知)
keycode 232 = ucircumflex Ucircumflex(未知) 
keycode 233 = ntilde Ntilde(未知) 
keycode 234 = yacute Yacute(未知) 
keycode 235 = oslash Ooblique(未知) 
keycode 236 = aring Aring(未知) 
keycode 237 = ccedilla Ccedilla(未知) 
keycode 238 = thorn THORN(未知) 
keycode 239 = eth ETH(未知) 
keycode 240 = diaeresis cedilla currency(未知) 
keycode 241 = agrave Agrave atilde Atilde(未知) 
keycode 242 = egrave Egrave(未知) 
keycode 243 = igrave Igrave(未知) 
keycode 244 = ograve Ograve otilde Otilde(未知) 
keycode 245 = ugrave Ugrave(未知) 
keycode 246 = adiaeresis Adiaeresis(未知) 
keycode 247 = ediaeresis Ediaeresis(未知) 
keycode 248 = idiaeresis Idiaeresis(未知) 
keycode 249 = odiaeresis Odiaeresis(未知) 
keycode 250 = udiaeresis Udiaeresis(未知) 
keycode 251 = ssharp question backslash(未知) 
keycode 252 = asciicircum degree(未知) 
keycode 253 = 3 sterling(未知) 
keycode 254 = Mode_switch(未知)

Ascii:

时间: 2024-10-10 11:03:22

Android测试之Keycode的相关文章

Android测试之旅之JUnit(二)

开始 通过Android测试之旅之JUnit(一)的学习,我们对JUnit的知识有了初步的认识.聪明的你是不是发现其实并没有你想象的那么难呢?这章我们继续来瞅瞅JUnit还有什么好玩的.今天我们用一个简单的例子给大家进行展示,方便更好的理解. Parameterized 我们先来看下面一个待测试类PrettyTest: public class PrettyTest { /** * 根据输入值的大小返回字符串 * @param a 输入值 * @return 返回的字符串结果 */ public

Android无线测试之—KEYCODE键值对应大全

KEYCODE列表电话键键名 描述 键值 KEYCODE_CALL 拨号键5    KEYCODE_ENDCALL 挂机键6    KEYCODE_HOME 按键Home3    KEYCODE_MENU 菜单键82    KEYCODE_BACK 返回键4    KEYCODE_SEARCH 搜索键84    KEYCODE_CAMERA 拍照键27    KEYCODE_FOCUS 拍照对焦键80    KEYCODE_POWER 电源键26    KEYCODE_NOTIFICATION

Python Appium 开启Android测试之路

1.获取 Android app的Activity 打开终端cmd,先cd进入到刚才下载的“新浪.apk”目录下,然后使用aapt dump badging xxx.apk命令获取包内信息.注意,启动类名称一个字母都不能错. aapt dump badging 新浪.apk cat>d:/log.txt     这样可以将信息指定到某一文件下然后 查看 2.启动微博 #-*-coding:utf-8-*- #Time:2017/7/20 18:06 #Author:YangYangJun imp

Android测试之Monkey

自己用的测试 C:\Users\Star>adb shell monkey -p com.cmstop.android --monitor-native-crashes -- pct-touch 30 -s 1 -v -v -v --throttle 200 100000   (不容易停下来) C:\Users\Star>adb shell monkey -p com.cmstop.android -v 500 --ignore-crashes 开始—>运行—>cmd     3.

Android 测试之Monkey

一.什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种为了测试软件的稳定性.健壮性的快速有效的方法. 二.Monkey的特征 1. 测试的对象仅为应用程序包,有一定的局限性. 2. Monky测试使用的事件流数据流是随机的,不能进行自定义. 3. 可对MonkeyTest的对象,事件数量,类型,频率等进行设置. 三.M

Forms Android WebView Renderer

1 forms 代码 2 3 using System; 4 using Xamarin.Forms; 5 6 namespace.Core 7 { 8 public class ContentWebView:WebView 9 { 10 //private ProgressBar progressbar; 11 12 public ContentWebView () 13 { 14 15 } 16 17 public string Url{ get; set;} 18 19 public st

[Android Pro] Android应用性能测试之CPU和内存占用(转载)

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控. 要做到上边的测试环境的实现,需要具备以下几点: 1.被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件.至于如何root你的手机,不同型号的手机root的方法不

Android自动化测试之Monkeyrunner学习笔记(一)【转】

因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyrunner.Athrun.appium,目前仍在了解学习android测试框架.CTS等.本文主要为前段时间学习总结,由于刚接触不久,故本文难免会有些肤浅,大神请绕走~ [目录] 1.Monkeyrunner简介 2.Monkeyrunner工具特性 3.Monkeyrunner工具同Monkey工具的差别 4.运行Monkeyrunner 5.实例 6.学习笔记

[转] Android自动化测试之使用java调用monkeyrunner(五)

Android自动化测试之使用java调用monkeyrunner 众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本.不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本. 于是,就简单研究了一下.这里做一些总结.希望有对在研究的午饭可以有所用处. 开始时,搜素到一些零碎的教程,说使用java调用monkeyrunner时,需要导入android sdk  tools路径下的lib里