web和app自动化的UI定位测试面试梯

1. web元素定位七种方式

优先使用的6种
find_element_by_id (返回一个元素)
find_element(s)_by_class_name (根据类名获取元素列表)
find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)
find_element(s)_by_link_text (根据连接文本获取元素列表)
find_element(s)_by_partial_link_text (根据链接包含的文本获取元素列表)
find_element(s)_by_tag_name (根据标签名获取元素列表)
find_element(s)_by_css_selector 根据css选择器获取

万不得已下使用的两个
find_element(s)_by_css_selector (根据css选择器来获取元素列表)
find_element(s)_by_xpath (返回一个包含元素的列表)

2. app元素定位3种方式


by_id
by_class_name
by_xpath

3. adb常用命令
adb 帮助:adb --help

启动adb 服务:adb start-server

关闭adb 服务:adb kill-server

获取设备号:adb devices

获取系统版本:adb shell getprop ro.build.version.release

发送文件到手机:adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径

adb push C:\Users\win\Desktop\xx.png /sdcard
从手机拉取文件: adb pull 手机端的路径/拉取文件名 电脑端存储文件路径

adb pull /sdcard/xx.png C:\Users\win\Desktop
查看手机运行日志: adb logcat

进入到手机终端: adb shell

安装app到手机: adb install 路径/xxx.apk

卸载手机app : adb uninstall app

获取app启动包名和启动名(⚠手机需要先打开对应app)

Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp

在 Windows 终端运⾏: adb shell dumpsys window w | findstr mCurrent

获取app启动时间: adb shell am start -W 包名/.启动名

查看设备ip地址:

adb shell ifconfig wlan0
adb shell netcfg
查看设备cpu信息: adb shell cat /proc/cpuinfo

查看设备内存信息: adb shell cat /proc/meminfo

点亮屏幕: adb shell input keyevent 224

熄灭屏幕: adb shell input keyevent 223

  1. 键盘操作常用函数
    send_keys(Keys.BACK_SPACE)删除键(BackSpace)
    send_keys(Keys.SPACE)空格键(Space)
    send_keys(Keys.TAB)制表键(Tab)
    send_keys(Keys.ESCAPE)回退键(Esc)
    send_keys(Keys.ENTER)回车键(Enter)
    send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
    send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)
    send_keys(Keys.CONTROL,‘v’) 全选(Ctrl+V)
    send_keys(Keys.CONTROL,‘x’)复制(Ctrl+X)
    4. 鼠标操作常用函数
    context_click() 右击 --> 此方法模拟鼠标右键点击效果
    double_click() 双击 --> 此方法模拟双标双击效果
    drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
    move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
    perform() 执行 --> 此方法用来执行以上所有鼠标方法

  2. selenium 原理

  3. 整个过程就是:python ---http请求---> Chromedrive.exe  --- js --->浏览器

python通过requests库进行发送http请求,驱动收到请求后就会去访问对应的接口,然后把一些参数转换成JS代码,然后通过dom,bom等来执行浏览器进行操作,最后把相应内容返回给python

6. apppium:
开源、跨平台的UI自动化测试工具,支持多种语言编写的测试脚本
原理:
1. test scripts(测试脚本发送一个请求到appium server)
2. appium server接收到请求后进行解析并把请求转发给 bootstrap.jar。
3. jar接收到appium的命令,调用UIAutomator命令实现操作
4. 最终结果由bootstrap.jar返回给Appium server。

7. fixture
1 .必须继承unittest.TestCase类,setUp、tearDown才是一个Fixture;
2. setUp:一般做初始化工作,比如:实例化浏览器、浏览器最大化、隐式等待设置
3. tearDown:一般做结束工作,比如:退出登录、关闭浏览器
4. 如果一个测试类有多个test开头方法,则每个方法执行之前都会运行setUp、结束时运行tearDown

猜你喜欢

转载自blog.csdn.net/m0_57028677/article/details/128879103