当前位置: 首页 > news >正文

网站策划技巧长沙创意网站建设

网站策划技巧,长沙创意网站建设,温州网站 公司,做外贸的有些什么网站1.Appium介绍 1#xff0c;appium是开源的移动端自动化测试框架#xff1b; 2#xff0c;appium可以测试原生的、混合的、以及移动端的web项目#xff1b; 3#xff0c;appium可以测试ios#xff0c;android应用#xff08;当然了#xff0c;还有firefoxos#xff09;…1.Appium介绍 1appium是开源的移动端自动化测试框架 2appium可以测试原生的、混合的、以及移动端的web项目 3appium可以测试iosandroid应用当然了还有firefoxos 4appium是跨平台的可以用在osxwindows以及linux桌面系统上2.Appium基本原理 在Android端appium基于WebDriver协议利用Bootstrap.jar最后通过调⽤ 用UiAutomator的命令实现App的自动化测试。 UiAutomator测试框架是AndroidSDK自带的AppUI自动化测试Java库。 另外由于UiAutomator对H5的支持有限appium引入了chromedriver以及 safaridriver等来实现基于H5的自动化。 2.1.appium在android端工作流 1.client端也就是我们testscript是我们的webdriver测试脚本。 2.中间是起的Appium的服务Appium在服务端起了一个Server4723端口 跟seleniumWebdriver测试框架类似Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,AppiumServer接 收webdriverclient标准rest请求解析请求内容调⽤用对应的框架响应 操作。 3.appiumserver会把请求转发给中间件Bootstrap.jar它是用java写的安装 在手机上.Bootstrap监听4724端口并接收appium的命令最终通过调⽤用 UiAutomator的命令来实现。 4.最后Bootstrap将执行的结果返回给appiumserver。 5.appiumserver再将结果返回给appiumclient。 3.Appium安装配置 3.1.限制 如果你在windows上安装appium你没法使用预编译专用于OSX的.app文件 你也将不能测试IOSapps因为appium依赖OSX专用的库来支持IOS测试。这 意味着你只能通过在mac上来运行IOS的app测试。这点限制挺大。 3.2.傻瓜式安装node.js 3.2.1.查看是否安装成功 nodejs安装完毕后需要配置环境变量 在PATH中添加D:\ProgramFiles\nodejs; 3.3.傻瓜式安装Appium 3.3.1.成功界面 3.4.配置appium环境变量 D:\Appium\node_modules\.bin 3.5.打开控制台查看appium环境 3.5.1.appium-doctor 3.6.配置Android—环境变量 D:\androidSDK 3.7.Python中配置appium环境联网 进入D:\python\Scripts 打开控制台 pipinstallAppium-Python-client 3.8.总结 1) androidsdk安装完毕后需要配置环境变量 新建ANDROID_HOME 在PATH中添加%ANDROID_HOME%:\..... 2) nodejs安装完毕后需要配置环境变量 在PATH中添加D:\ProgramFiles\nodejs; 3) appium安装完毕后需要配置环境变量 D:\ProgramFiles(x86)\Appium\node_modules\.bin; 4) 配置好后启动cmd 输入node-v查看node安装版本 输入appium-doctor检查appium的安装环境是否成功 5) 安装Python,配置环境变量 4.第一个脚本示例 4.1.首先通过eclpse启动android模拟器 4.2.启动Appium 4.3.点击左上角有“机器人”的按钮 选择你的android版本 4.4.点击右上角的“三角”按钮启动Appium。 4.5.通过Python编写自动化测试脚本。 desired_caps是一个字典用于在appiumserver与手机端建立会话关系时手 机端需要告诉服务端设备相关的一些参数根据这些参数服务端可以做出相应的 处理。 4.6.画出来的这三个是需要在脚本中正确填写的 4.7.执行效果 5.Appium界面内容解析 5.1.整体介绍 主页面顶部从左到右依次是 1、AndroidSettings:android相关的设置 2、GeneralSettings全局设置设置appium相关的内容 3、DeveloperSettings开发者设置一般不用需要关心 4、Aboutappium相关信息不需要关心 5、Inspector查找元素用的windows无法使用MAC可以使用windows可 以不用关心。 6、LaunchAppium启动appium按钮 7、右下角清除日志按钮。 5.2.AndroidSettings 此页面分为Application、La、、四部分先看图 之后分析分别有什么作用 5.2.1.1、Application 本模块设置被测试app信息如安装包路径、包名、activity等 ApplicationPath选择要测试的apk选择他后与全局设置中的 Pre-LaunchApplication配合启动appium时会先把apk安装到手机或模拟器 再启动app。 Package根据apk生成的app包名之前提到过的我们这个包的身份证我 们需要通过这个去找到包不然我们安装后我们通过什么去辨别这些包呢 WaitforPackage等待包名。 LaunchActivityactivityActivity就是其中的一个个网页我们启动app时需要去运行的activity这里我们填写首次启动页面的activity。我们选择第一启动的activity与aapt命令生成的launchable-activity:name一致 WaitforActivity和上面的差不多意思是等待某个Activity打开用的时间不是 很多做了解。 UseBrowser测试浏览器选择这项与前五项互逆。及选择了他前五个就不可以 选择。 FullReset将所有设置复位。即将手机模拟器恢复到启动到appium前的状 态 NoReset不需要重置手机模拟器中的app 6.2.2.LaunchDevice 本模块是模拟器设置针对的是SDK创建的模拟器不是genymotion等其 他模拟器。 LaunchAVD要启动的模拟器名称。 DeviceReadyTimeout等待模拟器启动时间。 Arguments启动模拟器时需要的参数。 6.2.3.Capabilities 运行测试的相关信息。 PlatformName测试平台可以选择Android、FireFoxOS、MAC版的还可以选择 IOS。 PlatformVersion被测试手机模拟器版本。 DeviceName设备名称手机连接电脑后打开cmd输入adbdevices可获取。 Language被测试手机模拟器使用语言。 Locale被测试手机模拟器所属区域。 5.4.元素侦测 这个按钮的功能和firebug的定位工具功能类似但是他还有一个功能他会检 测你的各个系统配置是否正确如果前面各项参数不正确时使用该功能会报错。 如果你不正常连接手机也不行。还是建议用sdk工具里面自带的 uiautomatorviewer。5.5.启动服务 所有参数配置好后你需要做的就是启动appium服务只有启动之后你才能够做 自动化。5.6.清除日志右下角 在写脚本、调试过程中会产生很多的日志但是你可能想看的只是中间某个时间 段的那么你在这个时候可以将页面的日志清除。 6.Appium查看界面元素的工具 6.1.通过androidsdk的uiautomaterviewer获取元 素内容 uiautomatorviewer.bat是一个用来来扫描和分析Android应用程序的UI组件的 GUI工具。具体使用方法可参考。打开uiautomatorviewer以后可以看到 uiautomatorviewer已经将模拟器的图形展示在上面了。 6.2.右侧xml节点详解 7.获取appPackage和appActivity appPackage和appActivity进行appium自动化测试非常重要的两个参数 我们所测试的APP不同这两个参数肯定也是不一样的。那如何快速的获取这 APP的这两个参数呢 7.1.方法一:通过cmd指令来获取 1.adbshell 2.dumpsysactivity|grepmFocusedActivity 3、adbshelldumpsysactivityactivities 7.2.方法二:使用Appium来获取 进入设置页选择APK路径下面就会显示包名和Activity名称 8.Appium常用定位方法讲解 对象定位是自动化测试中很关键的一步也可以说是最关键的一步毕竟你对象 都没定位那么你想操作也不行下面我们来看我们常用的一些定位方式。 8.1.ID定位取resource-id的值 无论是在web自动化还是app自动化中id都是唯一的可能有的小伙伴看 到这里会有疑问因为有的资料说是通过name定位是唯一的为什么你这里是 id呢其实这个在之前是不冲突的但是如果你用的是appium较新版本是不行 的在新版本中name定位被去掉了所以在以后的定位中不会有name定位了 通常情况下我们也更喜欢用id进行定位。这里可能刚学的小伙伴会有疑问 有的时候你的应用为什么没有id或者说在这个手机上有但是另外的手机上 没有。1、开发没有添加。2、android版本是4.4以下的。 如果我们需要对“7”这个数字进行点击操作 driver.find_element_by_id(com.android.calculator2:id/digit7).click()  8.3.className定位取class的内容 在实际工作中className定位用得相对而言会比较少。当你经常去看class 时你会发现很多的className是一样的你没有办法对其进行唯一定位下面我 们看下面两张图片 driver.find_element_by_class_name(android.widget.EditText).send_keys(111111) 这种方式去定位你会发现你永远定位不了密码栏这是为什么呢因为在设计 的时候如果你查找的元素在页面有多个系统会自动给你选择第一个所以你永 远操作不了后面的 8.4.text定位需要使用uiautomator的定位方式 使用text的内容 使用这里需要注意一下如果通过text定位的结果是个list不能直接click。所 以如果要点击需要取数组的值比如下面是点击找到的第一个元素 8.5.xpath定位 xpath定位在web自动化中是最常见的而且也是最有效的使用xpath定 位避免了找不到元素导致报错的问题但是在app中使用xpath定位是一件很low 的事情。只要遇见使用xpath定位元素他的反应就会比较慢自动化的目的是为 了提高效率但是使用xpath后会降低效率所以这里说很low driver.find_element_by_xpath(//android.widget.TextView[textJavaScript]).click() 在xpath里面我们的语法是这样“//android.widget.TextView[textJavaScript]” 这个和我们之前web的xpath一样意思是查找所有节点中节点为 android.widget.TextView这里使用的是className也可以使用id系统会依次 去找并且他的text属性值为JavaScript这样是否更容易理解呢下来多练习。 这样的定位方式不推荐效率很慢。 8.6.css_selector定位webview--加载网页--css 只适用于webview的html页面继承自webdriver与pc版本的UI测试一致 driver.find_element_by_css_selector()8.7.link_text定位webview 只适用于webview容器中的html页面继承自webdriver与pc版本的UI测试 一致 driver.find_element_by_link_text() 8.8.源代码 10.Appium操作界面之触摸操作了解10.1.规范中的可用事件有 *短按(press) *释放(release) *移动到(moveTo) *点击(tap) *等待(wait) *长按(longPress) *取消(cancel) *执行(perform) 10.2.单点触摸TouchAction(driver) 通过TouchAction对象添加tap、move_to等操作然后perform()执行可以 实现解锁屏幕等功能 actionTouchAction(driver) action.press(x220,y700).move_to(x840,y700).move_to(x220, y1530).move_to(x840,y1530).release().perform()10.3.多点触控MultiAction() 通过MultiAction().add()添加多个TouchAction操作最后调用perform()一起执行 这些操作 举例 action0TouchAction().tap(el) action1TouchAction().tap(el) MultiAction().add(action0).add(action1).perform()10.4.滑动driver.swipe(x1,y1,x2,y2,duration) 命令解释从坐标(x1,x2)滑动到坐标(x2,y2)duration非必填项滑动时间滑 动时中间要加等待时间不加等待时间容易出错而且加等待时间的长短也要掌 握好一般在200-1000毫秒之间应该差不多自己调试几次感觉一下哪个时间 比较稳每个程序可能会有所差异 滑动的坐标不能超过屏幕的宽高 可以通过【driver.get_window_size()】命令获得窗口高和宽{width:1080,height: 1788}#获得机器屏幕大小x,y defgetSize(driver): xdriver.get_window_size()[width] ydriver.get_window_size()[height] return(x,y) #屏幕向上滑动 defswipeUp(driver,t500): lgetSize(driver) x1int(l[0]*0.5)#x坐标 y1int(l[1]*0.75)#起始y坐标 y2int(l[1]*0.25)#终点y坐标 driver.swipe(x1,y1,x1,y2,t)#屏幕向下滑动 defswipeDown(driver,t500): lgetSize(driver) x1int(l[0]*0.5)#x坐标 y1int(l[1]*0.25)#起始y坐标 y2int(l[1]*0.75)#终点y坐标 driver.swipe(x1,y1,x1,y2,t)#屏幕向左滑动 defswipLeft(driver,t500): lgetSize(driver) x1int(l[0]*0.75) y1int(l[1]*0.5) x2int(l[0]*0.05) driver.swipe(x1,y1,x2,y1,t) #屏幕向右滑动 defswipRight(driver,t500): lgetSize(driver) x1int(l[0]*0.05) y1int(l[1]*0.5) x2int(l[0]*0.75) driver.swipe(x1,y1,x2,y1,t) 10.5.长按示例 10.6.2.打开界面使用如下指令查看activity和package 10.6.3.编写python脚本代码 11.系统按键事件了解 press_keycode(AndroidKeyCode)#发送按键事件 例如点击home键home键的KeyCode是3 12.driver的一些比较重要操作 12.1.reset() #重置app#这时候driver会重置相当于卸载重装应用。所以本地缓存会失效 driver.reset() 12.2.start_activity(包名,activity名) 例如 #启动app的某一个activity 启动一个activity这个activity必须是AndroidManifest.xml中有intent-filter的 activity对于其他的activity需要程序跳转过去 12.3.scroll(起始元素结束元素) driver.scroll(origin_el,destination_el) 12.4.获得当前页面的所有元素 driver.page_source 这可以用来判断元素是否存在例如assert“发布成功”indriver.page_source 12.5.补充一些driver启动时可能用到的项了解 其实这些在上一篇启动里都有介绍但是有些可能大家没注意到的点再列一下。 这些点也是我在测试中实际遇到的点 autoLaunchAppium是否要自动启动或安装app默认true desired_caps[‘autoLaunch’]‘false’ 有的时候我不想让appium每次都启动app想自己去启动activity那这个项 这时就可以起作用了 noReset在会话前是否重置app状态。默认是false desired_caps[‘noReset’]‘true’ newCommandTimeout设置未接收到新命令的超时时间默认60s 如果60s内没有接收到新命令appium会自动断开连接如果我需要很长时间 做driver之外的操作可能延长接收新命令的超时时间 desired_caps[“newCommandTimeout”]1800 13.自动化测试简单案例-登录 13.1.打开UIAutomatorViewer 13.2.代码实现 driver.find_element_by_id(com.example.login:id/et_username).send_keys(hello); driver.find_element_by_id(com.example.login:id/et_password).send_keys(123); driver.find_elements_by_class_name(android.widget.Button)[1].click() 14.自动化测试案例2-转转 14.1.下载转转并打开在初始界面查看包和 activity 14.2.使用UIAutomatorViewer查看转转按钮14.3.点击跳过 #强制等待3秒钟 time.sleep(3) #跳过按钮 #driver.find_element_by_id(com.wuba.zhuanzhuan:id/arw).click() 14.4.点击分类 driver.implicitly_wait(10) #分类按钮 driver.find_element_by_id(com.wuba.zhuanzhuan:id/b1v).click() driver.implicitly_wait(10) #搜索按钮 driver.find_element_by_id(com.wuba.zhuanzhuan:id/b1p).click() driver.implicitly_wait(10) #搜索框中输入搜索内容 driver.find_element_by_id(com.wuba.zhuanzhuan:id/mg).send_keys(u电动车) time.sleep(10) #点击搜索 driver.find_element_by_id(com.wuba.zhuanzhuan:id/mi).click() driver.quit() 15.启信宝案例 #coding:utf-8 fromappiumimportwebdriver #desired_caps是一个字典 desired_caps{} #你要测试的手机操作系统 desired_caps[platformName]Android #手机操作系统的版本 desired_caps[platformVersion]7.0 #使用的手机类型或模拟器类型 desired_caps[deviceName]XPUDU17113015063 #deviceName你的模拟器名字就是在下载AVD的时候你填写的忘 了的回头去找或者在模拟器顶部会显示 #所运行的app包名 desired_caps[appPackage]com.bertadata.qxb #app运行的事件 desired_caps[appActivity].activity.SplashActivity #启动打开app driverwebdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) #根据元素定位执行点击操作 driver.implicitly_wait(10) serh driver.find_element_by_id(com.bertadata.qxb:id/tv_home_searc h_desc) serh.click() driver.find_element_by_id(com.bertadata.qxb:id/et_search_con tent).send_keys(优思安科技) driver.quit() Python接口自动化测试零基础入门到精通2024最新版
http://www.dnsts.com.cn/news/75359.html

相关文章:

  • 如何做一个导航网站app开发与网站开发的区别
  • 三亚文明城市建设服务中心报名网站2021最火关键词
  • 织梦做的网站织梦修改网页模板烟台网站建设九七
  • 网站怎么做移动图片不显示机械加工网18易3下7拉nrj
  • 网站开发非常之旅导航网源码
  • 免费网站下载直播软件免费app搭建开发
  • python做网站的好处建设营销型网站的目的
  • 做百度ssp的网站开发人建筑公司logo设计大全
  • 网站开发安全问题中国外贸导航网
  • 鲜花网站开发与设计在深圳注册公司需要什么资料
  • 做翻译赚钱的网站好网站制作金华公司电话
  • 网站备案 注销网页制作教程和素材
  • 网站制作公司品牌网上花店网页制作素材
  • 网站建设如何开票宜阳建站
  • 想学网站建设php网站程序安装
  • 网站开发中文改成英文百度浏览器官网下载并安装
  • php网站开发推荐书籍物业网站建设
  • 西安直播室网站建设wordpress分类目录双列显示
  • 专做女鞋的网站代发广州网站关键字没有排名
  • 网站推广行业赚钱吗泸州网站seo
  • 给了几张图让做网站阿里云的网站模版好吗
  • 嘉兴有哪些做网站的公司南宁企业网站排名优化
  • 网站 错误代码wordpress 提前8小时
  • 济南建网站哪家好做网站哪里好
  • seo技术培训学校如何优化百度seo排名
  • 秀山网站制作wordpress懒加载插件
  • 苏州vi设计公司泊头 网站优化
  • 成都制作网站价格表浙江省建设执业资格中心网站
  • 网站建设公司网站模板自助建站系统下载
  • 永康建设网站蓝色 网站