使用postman模拟appium的http请求
Appium是Server,接收http请求,使用Postman模拟请求
1.anyproxy
- 1.1、安装和运行
#安装
npm i -g anyproxy
# 运行anyproxy,端口默认8002
anyproxy

注意:测试完不要忘记取消代理设置
```shell
unset HTTP_PROXY
```

- 1.2、浏览器打开localhost:8002
- 1.3、设置环境变量和代理
Mac:export HTTP_PROXY=127.0.0.1:8001
Windows:set HTTP_PROXY 127.0.0.1:8001
2.终端执行脚本,捕捉请求
test.py
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from appium import webdriver
from time import sleep
caps = {}
caps["platformName"] = "android"
caps["deviceName"] = "domo"
caps["appPackage"] = "com.xueqiu.android"
caps["appActivity"] = ".view.WelcomeActivityAlias"
caps["newCommandTimeout"] = 1200
caps["automationName"] = "UiAutomator2"
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
driver.implicitly_wait(20)
sleep(20)
print(driver.session_id)
driver.find_element_by_id("com.xueqiu.android:id/user_profile_icon").click()
sleep(1)
driver.find_element_by_id("com.xueqiu.android:id/tv_login").click()
sleep(1)
driver.find_element_by_id("com.xueqiu.android:id/tv_login_by_phone_or_others").click()
sleep(1)
driver.find_element_by_id("com.xueqiu.android:id/register_phone_number").send_keys("123456789")
sleep(3)
print(driver.session_id)
driver.quit()
3.浏览器查看捕捉的请求

4.Postman模拟脚本发起HTTP请求
4.1 传入配置,返回SessionId
URL:http://127.0.0.1:4723/wd/hub/session
{"capabilities": {"firstMatch": [{}], "alwaysMatch": {"platformName": "android"}}, "desiredCapabilities": {"platformName": "android", "deviceName": "domo", "appPackage": "com.xueqiu.android", "appActivity": ".view.WelcomeActivityAlias", "newCommandTimeout": 200}}
#对应代码
from appium import webdriver
from time import sleep
caps = {}
caps["platformName"] = "android"
caps["deviceName"] = "domo"
caps["appPackage"] = "com.xueqiu.android"
caps["appActivity"] = ".view.WelcomeActivityAlias"
caps["newCommandTimeout"] = 1200
caps["automationName"] = "UiAutomator2"
driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

## 4.2 等待20秒
URL:http://127.0.0.1:4723/wd/hub/session/${SessionId}/timeouts/implicit_wait
```#python
#对应代码
sleep(20)
```

## 4.3 传入控件信息,返回ELEMENT的值,在随后的操作中会用到
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element
body传入控件信息:com.xueqiu.android:id/user_profile_icon

## 4.4 针对元素进行操作
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${Element}/click
```#python
#对应脚本
driver.find_element_by_id("com.xueqiu.android:id/user_profile_icon").click()
```

4.5 传入控件信息,返回Element的值
URL: http://127.0.0.1:4723/wd/hub/session/${SessionID}/element
body传入控件信息:com.xueqiu.android:id/tv_login

4.6 针对元素进行操作
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/click
#对应脚本
driver.find_element_by_id("com.xueqiu.android:id/tv_login").click()

4.7 传入控件信息,返回ELEMENT的值
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element
body传入控件信息: com.xueqiu.android:id/tv_login_by_phone_or_others

4.8 针对元素进行操作
URL:http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/click
#对应脚本
driver.find_element_by_id("com.xueqiu.android:id/tv_login_by_phone_or_others").click()

4.9 传入控件信息,返回ELEMENT的值
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element
body传入控件信息: com.xueqiu.android:id/register_phone_number

5.10 针对元素进行操作
URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/value
#对应脚本
driver.find_element_by_id("com.xueqiu.android:id/register_phone_number").send_keys("123456789")

5.11 结束
URL:http://127.0.0.1:4723/wd/hub/session/${SessionId}
#对应脚本
driver.quit()

使用postman模拟appium的http请求的更多相关文章
- Postman模拟Request Payload发送请求
Postman模拟Request Payload发送请求,如下图所示:
- postMan模拟get和post请求,支持局域网和外网
chrome应用postMan,可以安装一下,非常方便. 可以FQ下载安装. post参数要在body中设置 get参数直接在url中
- 模拟POST、Get 请求的工具----APIpost(中文版POSTMAN)
模拟POST.Get 请求的工具----APIpost(中文版POSTMAN) 快速生成.一键导出api文档 在线模拟调试,结果实时返回 模拟登录后请求API 支持团队协作 官网:https://ww ...
- 使用Postman模拟HTTP请求
使用Postman模拟HTTP请求 Postman是一款强大的前端调试工具,不管是开发人员还是测试人员都会需要调试接口程序,如RestAPI,此时可以通过向服务器发送不同的HTTP请求来判断接口返回结 ...
- 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍
目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...
- 模拟ajax的 script请求
/** * 模拟ajax的 script请求 * @param {[type]} options [description] * @return {[type]} [description] */ f ...
- .net后台模拟浏览器get/post请求
#region 后台模拟浏览器get/post请求 /// <summary> /// 发送请求方式 /// </summary> /// <param name=&qu ...
- postman(二):使用postman发送get or post请求
总结一下如何使用postman发送get或post请求 请求 一.GET请求 通常用于请求服务器发送某个资源,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接 1.请求方 ...
- php中模拟post,get请求和接受请求详细讲解
在php中我们经常用到curl拓展来进行模拟post.get请求,下面就来具体说说怎么模拟: 一.首先模拟post请求: function http_post_data($url, $query_da ...
随机推荐
- 电脑同时安装python2和python3, 如何实现切换使用
由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼 ...
- easyui 定义的右键菜单 在 浏览器中 失效.
使用 火狐 打开 easy ui 开发的网页, 鼠标右键 没有出现 自定义的 easyUI右键菜单, 出现的是鼠标本身的右键菜单. 如果使用ie 则正常. 原因在于我 的火狐使用了解除右键限制 这个脚 ...
- FMX StringGrid向上滑动自动加载记录(二)
写完FMX StringGrid向上滑动自动加载记录(一)自己也觉得不理想,实现的别扭与复杂,现在找到更好的实现方法,原来,StringGrid从基类TCustomPresentedScrollBox ...
- 26个你不知道的Python技巧
Python是目前世界上最流行的编程语言之一.因为: 1.它容易学习 2.它用途超广 3.它有非常多的开源支持(大量的模块和库) 不好意思,优达菌又啰嗦了. 本文作者 Peter Gleeson 是一 ...
- SWIFT中数字格式
SWIFT中格式化数字比较常用的应该就是以下几种格式了. var formatter = NSNumberFormatter() //formatter.numberStyle = NSNumberF ...
- matlab一些函数
1 addpath 路径(相对应地,rmpath移除路径) addpath ../commonaddpath ../common/minFunc_2012/minFuncaddpath ../comm ...
- BZOJ3551: [ONTAK2010]Peaks加强版【Kruskal重构树】【主席树】
重要的事情说三遍 不保证图联通 不保证图联通 不保证图联通 那些和我一样认为重构树是点数的童鞋是要GG Description [题目描述]同3545 Input 第一行三个数N,M,Q. 第二行N个 ...
- Windows10 解决 “/”应用程序中的服务器错误
部署 ASP.NET MVC5程序时,访问网站出现 未能加载文件或程序集“698_BLL”或它的某一个依赖项.试图加载格式不正确的程序. ================= 解决办法: 1.打开IIS ...
- [转载]PHP 连接 Rabbitmq 实例代码
转自 http://www.dahouduan.com/2017/11/23/php-rabbitmq-demo/ 接下来我们用 php 连接 rabbitmq 玩一玩.还没有安装 rabbitmq ...
- ES6必知必会 (一)—— 变量声明和结构赋值
本文章属于个人对es6一些比较常用的语法的总结归纳,其主要参考阮一峰大神的<a href="http://es6.ruanyifeng.com//">ECMAScrip ...