基于web的微信公众号程序自动化测试-java
- 微信公众号小程序一般基于前端APPH5,前后分离或不分离;自动化回归中基于appium不够稳定,基于web测试脚本更加稳定且效率更高;
实际中会遇到些问题,如微信授权,页面元素渲染效果差无法获取元素,接口间依赖参数不易获取等;
- 微信授权问题:模拟微信授权,httpclient添加请求头User-Agent模拟微信授权
CloseableHttpClient httpclient = HttpClients.createDefault();
String url="http://XXX";
HttpPost httppost = new HttpPost(url);
HashMap<String ,String> postHeader = new HashMap<String, String>();
postHeader.put("User-Agent","Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MicroMessenger/4.5.255");
postHeader.put("Referer","http://wxopen.dev.choicesaas.cn/oauth2/authorize/appidXXX?scope=snsapi_userinfo");
- APPH5使用浏览器打开页面元素渲染效果差,部分元素无法获取,可通过浏览器开发者模式模拟手机
打开开发者模式
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_F12);
robot.keyRelease(KeyEvent.VK_F12);
模拟手机
Robot robots = new Robot();
robots.keyPress(KeyEvent.VK_CONTROL);
robots.keyPress(KeyEvent.VK_SHIFT);
robots.keyPress(KeyEvent.VK_M);
- 遇到前后端不分离的程序,通过jsoup包获取js中对象属性值Document document = Jsoup.parse(result);
Document document = Jsoup.parse(responseResult);
/*取得script下面的JS变量*/
Elements e = document.getElementsByTag("script").eq(11);
Elements tag = document.getElementsByTag("script");
Element element2 = tag.get(tag.size()-1);
String[] data2 = element2.data().toString().split("var");/*循环遍历script下面的JS变量*/
for (Element element : e) {
/*取得JS变量数组*/
String[] data = element.data().toString().split("var");
int flag=0;
for(String variable : data){
/*过滤variable为空的数据*/
if(variable.contains("=")){
if(flag==0) {
/*取到满足条件的JS变量*/
if(variable.contains("serviceData") ){
flag=1;
String[] kvp = variable.split("=");
//根据id截取
String[] split = kvp[5].split("id: '").split("outTradeNo: '");
String extend=split[1];//0599d621deec4e7fb02c51e4f267cc58//outTradeNo: '
String ext=split[1];//outTradeNo: '
outTradeNo=ext.substring(0, 26);
System.err.println(outTradeNo);
}
}
基于web的微信公众号程序自动化测试-java相关推荐
- 基于python的微信公众号开发教程_基于python的微信公众号开发教程
应广大python学员的期盼,九宝老师精心制作的"基于python的微信公众号开发"视频教程即将上线. 该课程秉承九宝培训一贯的"简单.高效.快速"的讲课原则, ...
- 基于python的公众号课堂教学_基于Python的微信公众号数据挖掘分析
基于Python的微信公众号数据挖掘分析 华南农业大学电子工程学院 王 建 黄宁香 [期刊名称]电子世界 [年(卷),期]2019(000)011 [总页数]3 运用Python网络爬虫技术对某时事类 ...
- 视频教程-基于python的微信公众号开发教程-微信开发
基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...
- ios系统web(微信公众号)开发遇到的问题及解决方案
ios系统web(微信公众号)开发遇到的问题及解决方案 参考文章: (1)ios系统web(微信公众号)开发遇到的问题及解决方案 (2)https://www.cnblogs.com/clj2017/ ...
- Java在Web端微信公众号授权登录
Java在Web端微信公众号授权登录 1.需要在微信开发平台配置 url:是自己服务中的微信需要推给你的地址(需要使用二级域名,可以去添加链接描述)购买9块钱1个月使用权或者白嫖都可 token 这个 ...
- 微信公众号开发java流程_微信公众号开发教程java 编程语言的特点及选择
微信公众号开发教程java 编程语言的特点及选择 微信公众号为用户提供了相关的工具,来对微信公众号进行一个简单的开发.但是如果想实现一些复杂的功能,其实还是要借助于一些编程语言的使用.所以要了解,在微 ...
- 基于Vue的微信公众号开发及选型研究
目录 1.背景介绍 1.1微信公众号简介 1.2Vue框架简介 1.3组件库简介 2.开发流程 2.1申请微信公众号 2.2申请微信测试号及配置 2.3安装微信开发者工具 2.4创建Vue项目 2.5 ...
- 基于python的微信公众号开发
最近想自学服务器方面的知识,用微信公众号开发来练手.阅读了一些文章,实践以后总结一下. 租了腾讯云服务器,操作系统为 Ubuntu Server 14.04.1 LTS 64位,分配了一个公网IP地址 ...
- 基于Python实现微信公众号爬虫进行数据分析
学爬虫有什么用 网络爬虫是一个非常注重实践性而且实用性很强的编程技能,它不是程序员的专属技能,任何具有一定编程基础的人都可以学习爬虫,写爬虫分析股票走势,上链家爬房源分析房价趋势,爬知乎.爬豆瓣.爬新 ...
最新文章
- The C10K problem原文翻译
- resnet50网络结构_Resnet50详解与实践(基于mindspore)
- AR Software
- HihoCoder 1323 回文字符串
- java ognl表达式_java -------ognl表达式入门
- c#变量初始化的学习
- 电工学的MATLAB实践,基于Matlab/Simulink的电工学电路仿真
- 全网最详细关于3D打印的zbrush技术
- 推荐8个自媒体免费工具,不仅提高工作效率,还能提供灵感
- 身份认证之多因素身份认证(MFA)
- Mysql索引:图文并茂,深入探究索引的原理和使用
- HDU-圆桌会议问题
- 关于Android模块化我有一些话不知当讲不当讲
- Vue项目首页-热销推荐组件开发(7-6)
- Java后端程序员未来职业规划路线,超用心整理,建议收藏
- 论文笔记|A Block-sorting Lossless Data Compression Algorithm
- python路径、工作路径、文件路径问题、改变当前路径
- CRC16 校验算法
- linux之pmap命令查看进程的地址空间和占用的内存
- Python 条件控制 — if语句