Part-Selenium-1
阅读原文时间:2022年04月07日阅读:1

1.在浏览器中的console输入:帮助定位

> $x('xpath表达式')

> $('css表达式')

2.driver

> chrome driver: https://npm.taobao.org/mirrors/chromedriver

> firefox:https://github.com/mozilla/geckdriver/realeases/tag/v0.24.0

3.简易的页面性能

> raw_json = webdriver.execute_script("return JSON.stringify(window.performance.timing)"),返回的内容,比requests多,有些事它拿不到的

4.remote server

> 下载selenium server,启动

> 通过webdriver.remote()来连接到服务器

5.UI自动化测试策略

> 核心业务自动化

> 接口测试是否可以保证,可以,ui测试可以适当弱化

> 涉及用户交互的重要功能,仍然能需要使用UI自动化测试保证

6.测试痛点

> 快速迭代中自动化用例吃力

没有采用po模式,导致自动化用例维护成本大

对自动化框架掌握程度不够

> 测试内容太多导致手工测试无法充分覆盖

界面字段正确性

接口正确性:后端接口传输数据的变化和内容

专项测试回归难度大:内存泄漏,健壮性测试,弱网等  测试过程太多

回归工作量大,不回归又会漏测

改进:

>  自动化:覆盖主要业务的right path,缩小规模尽量降低维护成本

>  手工:覆盖新功能测试,探索性测试

> 遍历测试手段:code less:用例维护成本降到最低

automate:尽可能的自动化覆盖回归业务

自动遍历需求:可控,可定制

结果分析:点击前后截图对比,结果的数据建模,新老版本的diff,app结构思维导图展示

monkey:https://developer.android.com/studio/test/monkey

adb shell monkey -p com.ebo.home/com.ebo.home.Launcher --throttle 1000 --pct-touch 50 -v 500

> throttel,每个时间的间隔时间

> pct-touch,touch时间的占比

> -v  500,500次事件

> -s  指定种子值

monkeyrunner,功能较弱,使用python代码中调用java,不建议使用

Maxim:

高速uiautomator控件解析算法的Android Monkey, 每秒10-15个Action Event。实现快速DFS算法的Android Monkey , 每秒 5个Action Event。

`git clone https://github.com/zhangzhao4444/Maxim.git cd Maxim adb push framework.jar /sdcard adb push monkey.jar /sdcard adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.p.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 5 -v -v`

AppCrawler:

Usage: appcrawler [options]

  -a, --app <value>        Android或者iOS的文件地址, 可以是网络地址, 赋值给appium的app选项  -e, --encoding <value>   set encoding, such as UTF-8 GBK  -c, --conf <value>       配置文件地址  -p, --platform <value>   平台类型android或者ios, 默认会根据app后缀名自动判断  -t, --maxTime <value>    最大运行时间. 单位为秒. 超过此值会退出. 默认最长运行3个小时  -u, --appium <value>     appium的url地址  -o, --output <value>     遍历结果的保存目录. 里面会存放遍历生成的截图, 思维导图和日志  --capability k1=v1,k2=v2...                           appium capability选项, 这个参数会覆盖-c指定的配置模板参数, 用于在模板配置之上的参数微调  -r, --report <value>     输出html和xml报告  --template <value>       输出代码模板  --master <value>         master的diff.yml文件地址  --candidate <value>      candidate环境的diff.yml文件  --diff                   执行diff对比  -vv, --verbose           是否展示更多debug信息  --demo                   生成demo配置文件学习使用方法  --help示例appcrawler -a xueqiu.apkappcrawler -a xueqiu.apk --capability noReset=trueappcrawler -c conf/xueqiu.json -p android -o result/appcrawler -c xueqiu.json --capability udid=[你的udid] -a Snowball.appappcrawler -c xueqiu.json -a Snowball.app -u 4730appcrawler -c xueqiu.json -a Snowball.app -u http://127.0.0.1:4730/wd/hub

#生成demo例子appcrawler --demo

#启动已经安装过的appappcrawler --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"

#从已经结束的结果中重新生成报告appcrawler --report result/

#新老版本对比appcrawler --candidate result/ --master pre/ --report ./

java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo#把生成的demo.yaml文件重命名demo_1.yamljava -jar appcrawler-2.4.0-jar-with-dependencies.jar -c demo_1.yml1.执行参数与配置文件> capability设置:与appium完全一致> testcase:用于启动app后执行基础测试用例> selectedList:遍历范围设定> triggerActions:特定条件触发执行动作的设置执行参数比配置文件优先级别高2.capability:appPackage:""appActivity:""app:""appium:"http://127.0.0.1:4723/wd/hub"noReset:trueautomationName:uiautomator2dontStopAppOnReset:true3.自动化支持testcase>testcase的完整形态:i.given:所有的先决条天,when:先决条件成立后的行为,then:断言集合autoCrawl:truetestcase:  name:demo1  steps:  - when:       xpath://....       action:driver.swipe(1,2,3,4)  - when:       xpath://...       action:driver....  - xpath:登录     action:click     then:     - //*[contains(@text, "密码")]testcase的简写形态:  xpath:对应when里的xpath  action:对应when里的action定位模式:xpath,正则,包含action:back后退backApp回退到当前的app,默认等价与back行为monkey随机事件xxx()执行代码Thread.sleep(3000)driver.swipe(1,2,3,4)clicklongTap非以上所有行为是输入 xx ddd4.自动遍历SelectedList:指定遍历范围,看demo.yaml中包含,button,文本(其clickable=true),图片等firstList:优先遍历lastList:最后遍历backButton:当素有元素都被点击后默认后退按钮triggerAction:特定事件xpathAttributes:xpath默认有哪些属性,一般要去掉instanceblackList:黑名单maxDepth:最大遍历深度5.参数-c 指定配置文件-o /tmp/1 指定输出结果路径

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章