Appium是Server,接收http请求,使用Postman模拟请求

1.anyproxy

  • 1.1、安装和运行
  1. #安装
  2. npm i -g anyproxy
  3. # 运行anyproxy,端口默认8002
  4. 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

  1. # This sample code uses the Appium python client
  2. # pip install Appium-Python-Client
  3. # Then you can paste this into a file and simply run with Python
  4. from appium import webdriver
  5. from time import sleep
  6. caps = {}
  7. caps["platformName"] = "android"
  8. caps["deviceName"] = "domo"
  9. caps["appPackage"] = "com.xueqiu.android"
  10. caps["appActivity"] = ".view.WelcomeActivityAlias"
  11. caps["newCommandTimeout"] = 1200
  12. caps["automationName"] = "UiAutomator2"
  13. driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
  14. driver.implicitly_wait(20)
  15. sleep(20)
  16. print(driver.session_id)
  17. driver.find_element_by_id("com.xueqiu.android:id/user_profile_icon").click()
  18. sleep(1)
  19. driver.find_element_by_id("com.xueqiu.android:id/tv_login").click()
  20. sleep(1)
  21. driver.find_element_by_id("com.xueqiu.android:id/tv_login_by_phone_or_others").click()
  22. sleep(1)
  23. driver.find_element_by_id("com.xueqiu.android:id/register_phone_number").send_keys("123456789")
  24. sleep(3)
  25. print(driver.session_id)
  26. driver.quit()

3.浏览器查看捕捉的请求

4.Postman模拟脚本发起HTTP请求

4.1 传入配置,返回SessionId

  1. URLhttp://127.0.0.1:4723/wd/hub/session
  1. {"capabilities": {"firstMatch": [{}], "alwaysMatch": {"platformName": "android"}}, "desiredCapabilities": {"platformName": "android", "deviceName": "domo", "appPackage": "com.xueqiu.android", "appActivity": ".view.WelcomeActivityAlias", "newCommandTimeout": 200}}
  1. #对应代码
  2. from appium import webdriver
  3. from time import sleep
  4. caps = {}
  5. caps["platformName"] = "android"
  6. caps["deviceName"] = "domo"
  7. caps["appPackage"] = "com.xueqiu.android"
  8. caps["appActivity"] = ".view.WelcomeActivityAlias"
  9. caps["newCommandTimeout"] = 1200
  10. caps["automationName"] = "UiAutomator2"
  11. 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的值

  1. URL: http://127.0.0.1:4723/wd/hub/session/${SessionID}/element
  2. body传入控件信息:com.xueqiu.android:id/tv_login

4.6 针对元素进行操作

  1. URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/click
  1. #对应脚本
  2. driver.find_element_by_id("com.xueqiu.android:id/tv_login").click()

4.7 传入控件信息,返回ELEMENT的值

  1. URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element
  2. body传入控件信息: com.xueqiu.android:id/tv_login_by_phone_or_others

4.8 针对元素进行操作

  1. URL:http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/click
  1. #对应脚本
  2. driver.find_element_by_id("com.xueqiu.android:id/tv_login_by_phone_or_others").click()

4.9 传入控件信息,返回ELEMENT的值

  1. URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element
  2. body传入控件信息: com.xueqiu.android:id/register_phone_number

5.10 针对元素进行操作

  1. URL: http://127.0.0.1:4723/wd/hub/session/${SessionId}/element/${ELEMENT}/value
  1. #对应脚本
  2. driver.find_element_by_id("com.xueqiu.android:id/register_phone_number").send_keys("123456789")

5.11 结束

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

使用postman模拟appium的http请求的更多相关文章

  1. Postman模拟Request Payload发送请求

    Postman模拟Request Payload发送请求,如下图所示:

  2. postMan模拟get和post请求,支持局域网和外网

    chrome应用postMan,可以安装一下,非常方便. 可以FQ下载安装. post参数要在body中设置 get参数直接在url中

  3. 模拟POST、Get 请求的工具----APIpost(中文版POSTMAN)

    模拟POST.Get 请求的工具----APIpost(中文版POSTMAN) 快速生成.一键导出api文档 在线模拟调试,结果实时返回 模拟登录后请求API 支持团队协作 官网:https://ww ...

  4. 使用Postman模拟HTTP请求

    使用Postman模拟HTTP请求 Postman是一款强大的前端调试工具,不管是开发人员还是测试人员都会需要调试接口程序,如RestAPI,此时可以通过向服务器发送不同的HTTP请求来判断接口返回结 ...

  5. 『政善治』Postman工具 — 4、HTTP请求基础组成部分介绍

    目录 1.Method 2.URL 3.Headers 4.body 一般来说,所有的HTTP Request都有最基础的4个部分组成:URL. Method. Headers和body. 1.Met ...

  6. 模拟ajax的 script请求

    /** * 模拟ajax的 script请求 * @param {[type]} options [description] * @return {[type]} [description] */ f ...

  7. .net后台模拟浏览器get/post请求

    #region 后台模拟浏览器get/post请求 /// <summary> /// 发送请求方式 /// </summary> /// <param name=&qu ...

  8. postman(二):使用postman发送get or post请求

    总结一下如何使用postman发送get或post请求 请求 一.GET请求 通常用于请求服务器发送某个资源,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接 1.请求方 ...

  9. php中模拟post,get请求和接受请求详细讲解

    在php中我们经常用到curl拓展来进行模拟post.get请求,下面就来具体说说怎么模拟: 一.首先模拟post请求: function http_post_data($url, $query_da ...

随机推荐

  1. 团队作业之现场UML设计

    项目UML设计(团队) 团队信息 团队名:第三视角 各成员学号及姓名 姓名 学号 博客链接 张扬(组长) 031602345 http://www.cnblogs.com/sxZhangYang/p/ ...

  2. uri 定义

    function path(){ $path=explode("/",$_SERVER['REQUEST_URI']); unset($path[(count($path)-1)] ...

  3. pyqt5:图片自适应QLabel大小和图片移除

    参考链接: https://www.e-learn.cn/content/qita/669569 图片自适应QLabel大小 # coding=utf- import sys from PyQt5.Q ...

  4. vue-cli 添加less 以及sass

    1.sasscnpm i node-sass --save-dev cnpm i sass-loader --save-dev2.less npm install less --save-dev np ...

  5. SWIFT Optional Value

    SWIFT中有一个类型定义叫可选值,在变量类型后面加一个?号即可定义一个类型为Optional Value的变量,当在使用变量时要用到强制解包!. 如在页面上有一个可选输入年龄的框,在接受数据的时间就 ...

  6. C语言基础:结构体 分类: iOS学习 c语言基础 2015-06-10 21:47 28人阅读 评论(0) 收藏

    结构体:是一种用户自定义的数据类型 结构体定义 struct 结构体名 {     成员类型1  成员变量名1;     成员类型2  成员变量名2;      -. }; typedef   原类型 ...

  7. ftp添加虚拟用户的实例

    本文主要讲解添加一个ftp虚拟用户的流程,接上文 https://www.cnblogs.com/tssc/p/9582780.html ========= 完美的分割线 ======== 1.修改授 ...

  8. opencv数据类型和格式的坑

    //cv::Mat uvp = cv::Mat::zeros(2, probp.size(), CV_8UC1); cv::Mat uvp = cv::Mat::zeros(2, probp.size ...

  9. STM32 用c语言控制4个LED灯从左向右无限流动

    在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了, 想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数 无限循环. #include "stm ...

  10. POJ 1142:Smith Numbers(分解质因数)

                                   Smith Numbers Time Limit: 1000MS   Memory Limit: 10000K Total Submiss ...